apiVersion: v1
items:
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
    creationTimestamp: "2021-08-18T15:35:50Z"
    generation: 12
    labels:
      machineconfiguration.openshift.io/role: master
    name: 00-master
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: ControllerConfig
      name: machine-config-controller
      uid: a3446db4-0bfc-4ca4-9601-803aa7716d9d
    resourceVersion: "1072779839"
    uid: 56ef7b64-22eb-45ca-933c-bf6e99b10ea4
  spec:
    config:
      ignition:
        version: 3.2.0
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A0bc95c9a9d52eb870744539490ece8394a1fb8e07bf775f393921c03f3470956%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A9444%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa2999182e95f9fe56f377750a1972e5eb06993cccfe398f72fb4abeb7cc23a2a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%209444%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A9b6774e15990c3ffa61724c4f0c4a0dc573367a70d53ecd64d8bed74e1b08720%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:17f74dc538a856192677a4ce0e1661ae721a23b3ba270db58f2b787082afb2f3'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:17f74dc538a856192677a4ce0e1661ae721a23b3ba270db58f2b787082afb2f3' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:34669a57488b9f00441d86e640c3cd50d633360cdcb4424e82a217dea667c0a5
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
    creationTimestamp: "2021-08-18T15:35:50Z"
    generation: 12
    labels:
      machineconfiguration.openshift.io/role: worker
    name: 00-worker
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: ControllerConfig
      name: machine-config-controller
      uid: a3446db4-0bfc-4ca4-9601-803aa7716d9d
    resourceVersion: "1072779840"
    uid: 747a5186-98ae-451c-abbe-8ac432164398
  spec:
    config:
      ignition:
        version: 3.2.0
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A0bc95c9a9d52eb870744539490ece8394a1fb8e07bf775f393921c03f3470956%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A9b6774e15990c3ffa61724c4f0c4a0dc573367a70d53ecd64d8bed74e1b08720%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:17f74dc538a856192677a4ce0e1661ae721a23b3ba270db58f2b787082afb2f3'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:17f74dc538a856192677a4ce0e1661ae721a23b3ba270db58f2b787082afb2f3' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:34669a57488b9f00441d86e640c3cd50d633360cdcb4424e82a217dea667c0a5
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
    creationTimestamp: "2021-08-18T15:35:50Z"
    generation: 8
    labels:
      machineconfiguration.openshift.io/role: master
    name: 01-master-container-runtime
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: ControllerConfig
      name: machine-config-controller
      uid: a3446db4-0bfc-4ca4-9601-803aa7716d9d
    resourceVersion: "1072779842"
    uid: 8c30cd09-7f28-4ad0-8a5d-336ad21348bc
  spec:
    config:
      ignition:
        version: 3.2.0
      storage:
        files:
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A27545663aa804e4a153ec7bf40761a4151d1baff6c230825dce4da9647952d5a%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:,%7B%0A%20%20%20%20%22default%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22insecureAcceptAnything%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%2C%0A%20%20%20%20%22transports%22%3A%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22docker-daemon%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%3A%20%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:34669a57488b9f00441d86e640c3cd50d633360cdcb4424e82a217dea667c0a5
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
    creationTimestamp: "2021-08-18T15:35:50Z"
    generation: 8
    labels:
      machineconfiguration.openshift.io/role: master
    name: 01-master-kubelet
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: ControllerConfig
      name: machine-config-controller
      uid: a3446db4-0bfc-4ca4-9601-803aa7716d9d
    resourceVersion: "1072779843"
    uid: 47937425-696b-4a4f-a39a-f4c23b592717
  spec:
    config:
      ignition:
        version: 3.2.0
      storage:
        files:
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
      systemd:
        units:
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:27545663aa804e4a153ec7bf40761a4151d1baff6c230825dce4da9647952d5a \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: kubelet.service
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:34669a57488b9f00441d86e640c3cd50d633360cdcb4424e82a217dea667c0a5
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
    creationTimestamp: "2021-08-18T15:35:50Z"
    generation: 8
    labels:
      machineconfiguration.openshift.io/role: worker
    name: 01-worker-container-runtime
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: ControllerConfig
      name: machine-config-controller
      uid: a3446db4-0bfc-4ca4-9601-803aa7716d9d
    resourceVersion: "1072779844"
    uid: 7f45ba92-5349-43e3-b778-56e7a5232687
  spec:
    config:
      ignition:
        version: 3.2.0
      storage:
        files:
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A27545663aa804e4a153ec7bf40761a4151d1baff6c230825dce4da9647952d5a%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:,%7B%0A%20%20%20%20%22default%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22insecureAcceptAnything%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%2C%0A%20%20%20%20%22transports%22%3A%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22docker-daemon%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%3A%20%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:34669a57488b9f00441d86e640c3cd50d633360cdcb4424e82a217dea667c0a5
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
    creationTimestamp: "2021-08-18T15:35:50Z"
    generation: 8
    labels:
      machineconfiguration.openshift.io/role: worker
    name: 01-worker-kubelet
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: ControllerConfig
      name: machine-config-controller
      uid: a3446db4-0bfc-4ca4-9601-803aa7716d9d
    resourceVersion: "1072779853"
    uid: cd9041d9-bb6a-4ad7-a1c0-58c6d65ffde7
  spec:
    config:
      ignition:
        version: 3.2.0
      storage:
        files:
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
      systemd:
        units:
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:27545663aa804e4a153ec7bf40761a4151d1baff6c230825dce4da9647952d5a \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: kubelet.service
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:34669a57488b9f00441d86e640c3cd50d633360cdcb4424e82a217dea667c0a5
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:36Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: master
    name: 75-master-audit-rules-kernel-module-loading-mss
    resourceVersion: "260942147"
    uid: c37605cb-8adf-4259-8128-51e557c538f7
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:37Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: master
    name: 75-master-audit-rules-sysadmin-actions-mss
    resourceVersion: "260942150"
    uid: 7808ffc1-b5af-4897-b4f1-be99fef6b271
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:37Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: master
    name: 75-master-audit-rules-time-adjtimex-mss
    resourceVersion: "260942152"
    uid: 4aebfe9d-f6a3-47e0-b91e-3e7c8452a233
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:38Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: master
    name: 75-master-audit-rules-time-clock-settime-mss
    resourceVersion: "260942153"
    uid: 356bbe33-7dce-408e-9f21-13eac5a7eb45
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:38Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: master
    name: 75-master-audit-rules-time-settimeofday-mss
    resourceVersion: "260942155"
    uid: 3ac9a589-2f84-4667-b2dc-f71f9f52f617
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:39Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: master
    name: 75-master-audit-rules-time-stime-mss
    resourceVersion: "260942156"
    uid: aded7b99-078d-4842-b22d-0153544fb41e
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:39Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: master
    name: 75-master-audit-rules-time-watch-localtime-mss
    resourceVersion: "260942157"
    uid: 4b051195-af6b-4b00-8e27-0ba6dee9bbdc
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:35Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-dac-modification-chmod
    resourceVersion: "123297"
    uid: 372b41ea-81b3-4b28-a849-a8139e423e86
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:33Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-dac-modification-chown
    resourceVersion: "123242"
    uid: 26af1ea9-d3c4-466e-ad9e-2aaf3afbc366
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:33Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-execution-chcon
    resourceVersion: "123222"
    uid: 9d7c5ee0-f137-4300-b5f9-2eb9cca51617
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:32Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-execution-restorecon
    resourceVersion: "123207"
    uid: 02ff13ab-4276-4d91-ba67-4d4ce7d096d2
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:33Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-execution-semanage
    resourceVersion: "123216"
    uid: b81e962a-b2d7-4a52-a9cf-112c8088d388
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:35Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-execution-setfiles
    resourceVersion: "123288"
    uid: f96e6888-fa42-49e6-b73c-a91408461848
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:35Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-execution-setsebool
    resourceVersion: "123295"
    uid: b7331972-d0d1-4b1c-b250-09e6cba6b790
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:33Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-execution-seunshare
    resourceVersion: "123248"
    uid: 5901bc36-d208-43db-82e7-90b290664048
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:34Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-login-events-faillock
    resourceVersion: "123281"
    uid: ff4051c5-ece9-41a0-be40-1e1b646ea49b
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:33Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-login-events-lastlog
    resourceVersion: "123245"
    uid: 34938fd6-1134-4ec5-b939-f0be933484d4
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:34Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-login-events-tallylog
    resourceVersion: "123265"
    uid: ba795851-d600-4c36-bcad-2163d7539526
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:34Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-networkconfig-modification
    resourceVersion: "123284"
    uid: 29b858e0-54ba-408a-bbf7-77fdcaa8eac2
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:34Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-audit-rules-usergroup-modification
    resourceVersion: "123257"
    uid: df567e13-6b46-45ce-b05b-f8bbd37dc430
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:35Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-auditd-name-format
    resourceVersion: "123302"
    uid: 39dbeb80-973d-4c6e-b131-29f74e543f0c
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:33Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-no-empty-passwords
    resourceVersion: "123232"
    uid: 7e46e020-27c1-43b0-879e-3c88e459bb05
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:33Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-sshd-disable-gssapi-auth
    resourceVersion: "123226"
    uid: b4e0fba4-5343-4013-94a6-ab3470ab3282
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:33Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-sshd-disable-user-known-hosts
    resourceVersion: "123239"
    uid: 5773790f-b3c8-404d-8fd9-d7c9aef404c9
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2022-11-29T13:58:28Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-sshd-set-loglevel-info
    resourceVersion: "1072615716"
    uid: b92b4389-d19e-4b1f-bf75-7f39aeae7a2e
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:34Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-sysctl-kernel-dmesg-restrict
    resourceVersion: "123262"
    uid: b147ed6c-a3e1-480c-8ce3-bb9601f03f39
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2022-07-15T08:04:47Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-sysctl-kernel-kptr-restrict
    resourceVersion: "748801846"
    uid: eb3d03ab-ff3a-4b5a-81a9-dcf5598cd434
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:32Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-sysctl-kernel-randomize-va-space
    resourceVersion: "123212"
    uid: 3ff1e49f-1e91-4768-a4c4-8105a0cf82a1
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:33Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-sysctl-kernel-unprivileged-bpf-disabled
    resourceVersion: "123235"
    uid: 38ed5227-cd25-4208-aa6b-6b45f01954cf
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2022-06-07T08:05:21Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-sysctl-kernel-yama-ptrace-scope
    resourceVersion: "642728692"
    uid: 715a5baf-b114-497b-a2a4-fee70c6ec8d8
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:34Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-master
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: master
    name: 75-rhcos4-mss-master-sysctl-net-core-bpf-jit-harden
    resourceVersion: "123255"
    uid: 93140d8b-ae08-4d5f-8cd5-75900f62d849
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:03Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-dac-modification-chmod
    resourceVersion: "122511"
    uid: 9b3ae995-1834-4a78-a80c-52f53f2a9872
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:03Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-dac-modification-chown
    resourceVersion: "122523"
    uid: 1b05a2d9-d2de-4ec9-96ce-01f6b811ed73
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:03Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-execution-chcon
    resourceVersion: "122531"
    uid: 7c54e976-9154-4e44-b2f1-ab85d876ca60
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-execution-restorecon
    resourceVersion: "122589"
    uid: 5a9f4e43-a4c6-4700-a134-b32965bf51f9
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-execution-semanage
    resourceVersion: "122580"
    uid: 6c48a049-d90c-4eaa-b468-ad3f492ce5ed
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:03Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-execution-setfiles
    resourceVersion: "122529"
    uid: 1c088d90-3611-49ff-b2f1-fddb02978f52
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:03Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-execution-setsebool
    resourceVersion: "122558"
    uid: 2126ab2e-b287-4288-a582-eb43abd28549
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-execution-seunshare
    resourceVersion: "122593"
    uid: cb869ab3-caab-45d9-955b-df9c8cf6214b
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:03Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-login-events-faillock
    resourceVersion: "122545"
    uid: 1740f601-f5f4-4229-a909-db2a15329d9c
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-login-events-lastlog
    resourceVersion: "122582"
    uid: 138e15a1-8b67-4c4a-88cf-aaf5bc9b1615
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-login-events-tallylog
    resourceVersion: "122576"
    uid: db361812-327a-44ca-a2c9-abdd3078ef8a
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:02Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-networkconfig-modification
    resourceVersion: "122486"
    uid: 60d32c7a-5973-4e74-876b-1f2b309091a8
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:03Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-audit-rules-usergroup-modification
    resourceVersion: "122555"
    uid: 8a680003-b1ea-4d48-8c18-3378ea9679d7
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-auditd-name-format
    resourceVersion: "122584"
    uid: 141b95f8-84b3-4d70-b970-ab3d6fbfb8b6
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-no-empty-passwords
    resourceVersion: "122578"
    uid: dd146693-8913-4fd6-a415-39d61a3116c4
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-sshd-disable-gssapi-auth
    resourceVersion: "122587"
    uid: 542c0f5c-3246-4411-b22b-cfbf0758d38d
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:03Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-sshd-disable-user-known-hosts
    resourceVersion: "122552"
    uid: ecc2f00f-f08c-4bdb-a628-793102fb6924
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2022-11-29T13:59:13Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-sshd-set-loglevel-info
    resourceVersion: "1072617168"
    uid: c5d2d564-53e5-4e5b-adab-0b4e5f5712e3
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:02Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-sysctl-kernel-dmesg-restrict
    resourceVersion: "122492"
    uid: 1eb455e8-6648-4932-8238-578cffd6205e
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2022-07-15T08:05:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-sysctl-kernel-kptr-restrict
    resourceVersion: "748802488"
    uid: 2fd7ddf5-8076-4b49-9329-51c246aedf27
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:03Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-sysctl-kernel-randomize-va-space
    resourceVersion: "122535"
    uid: 49b8ad12-3b11-4e63-8a7e-fbec3ebe2159
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-sysctl-kernel-unprivileged-bpf-disabled
    resourceVersion: "122591"
    uid: aed41c6c-f6b4-4648-99a6-4cbb8dc69717
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2022-06-07T08:04:41Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-sysctl-kernel-yama-ptrace-scope
    resourceVersion: "642727097"
    uid: ad2339ab-8214-4f68-ad70-ed67e730ba71
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      compliance.openshift.io/remediation: ""
    creationTimestamp: "2021-08-18T18:04:04Z"
    generation: 1
    labels:
      compliance.openshift.io/scan-name: rhcos4-mss-worker
      compliance.openshift.io/suite: mss
      machineconfiguration.openshift.io/role: worker
    name: 75-rhcos4-mss-worker-sysctl-net-core-bpf-jit-harden
    resourceVersion: "122561"
    uid: 3550ba82-3b96-4ca6-91a4-6ff4be1ae4bd
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:41Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: worker
    name: 75-worker-audit-rules-kernel-module-loading-mss
    resourceVersion: "260942158"
    uid: bf9e0351-1254-4cde-8b1a-0b7869c7884e
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:41Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: worker
    name: 75-worker-audit-rules-sysadmin-actions-mss
    resourceVersion: "260942159"
    uid: cd7abf13-f4ba-4f69-8ec9-dd3a9c94730a
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:42Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: worker
    name: 75-worker-audit-rules-time-adjtimex-mss
    resourceVersion: "260942160"
    uid: 18c36ad9-174d-49d4-85ae-1b2699145844
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:42Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: worker
    name: 75-worker-audit-rules-time-clock-settime-mss
    resourceVersion: "260942161"
    uid: dc07ab65-3baa-4ab8-9432-09e8a3627f8f
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:43Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: worker
    name: 75-worker-audit-rules-time-settimeofday-mss
    resourceVersion: "260942162"
    uid: d0db2663-6d02-4205-8297-c32fa06fd33a
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:44Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: worker
    name: 75-worker-audit-rules-time-stime-mss
    resourceVersion: "260942163"
    uid: b1eab46d-f27f-4885-a0c2-4fb70168b597
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:44Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: worker
    name: 75-worker-audit-rules-time-watch-localtime-mss
    resourceVersion: "260942164"
    uid: d928bfac-2643-4381-b338-dfa0ff2d78a8
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:40Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: master
    name: 98-master-ssh-config-mss
    resourceVersion: "260942165"
    uid: 06adcee4-262b-481e-b61a-8f7c5bb6e45b
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:51:45Z"
    generation: 1
    labels:
      kustomize.toolkit.fluxcd.io/name: openshift-compliance-remediations
      kustomize.toolkit.fluxcd.io/namespace: flux-system
      machineconfiguration.openshift.io/role: worker
    name: 98-worker-ssh-config-mss
    resourceVersion: "260942166"
    uid: d517b7b5-2c5a-4521-a75b-3163ea78aae6
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
    creationTimestamp: "2021-08-18T15:35:50Z"
    generation: 15
    labels:
      machineconfiguration.openshift.io/role: master
    name: 99-master-generated-registries
    ownerReferences:
    - apiVersion: config.openshift.io/v1
      kind: Image
      name: cluster
      uid: b5b8a9fd-49f4-4f1f-be24-e4d7a6891aa7
    resourceVersion: "1036642152"
    uid: cbfa80c9-b894-44b0-9fb9-4c2b289ff8c2
  spec:
    config:
      ignition:
        version: 3.2.0
      storage:
        files:
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: ""
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T15:32:03Z"
    generation: 1
    labels:
      machineconfiguration.openshift.io/role: master
    name: 99-master-ssh
    resourceVersion: "1922"
    uid: 77c90bca-db0c-4778-bdc9-0422da5cb58f
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: ""
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
    creationTimestamp: "2022-11-19T09:43:30Z"
    generation: 1
    labels:
      machineconfiguration.openshift.io/role: worker
    name: 99-worker-generated-kubelet
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: KubeletConfig
      name: dynamic-node
      uid: 6bfddde9-38b9-49a0-a587-76e64c19aea0
    resourceVersion: "1048940740"
    uid: f8c12db7-5076-457b-999d-ea87830b5a6f
  spec:
    config:
      ignition:
        version: 3.2.0
      storage:
        files:
        - contents:
            source: data:text/plain,NODE_SIZING_ENABLED%3Dtrue%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m%0A
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:text/plain,%7B%0A%20%20%22kind%22%3A%20%22KubeletConfiguration%22%2C%0A%20%20%22apiVersion%22%3A%20%22kubelet.config.k8s.io%2Fv1beta1%22%2C%0A%20%20%22staticPodPath%22%3A%20%22%2Fetc%2Fkubernetes%2Fmanifests%22%2C%0A%20%20%22syncFrequency%22%3A%20%220s%22%2C%0A%20%20%22fileCheckFrequency%22%3A%20%220s%22%2C%0A%20%20%22httpCheckFrequency%22%3A%20%220s%22%2C%0A%20%20%22tlsCipherSuites%22%3A%20%5B%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%22%2C%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%22%0A%20%20%5D%2C%0A%20%20%22tlsMinVersion%22%3A%20%22VersionTLS12%22%2C%0A%20%20%22rotateCertificates%22%3A%20true%2C%0A%20%20%22serverTLSBootstrap%22%3A%20true%2C%0A%20%20%22authentication%22%3A%20%7B%0A%20%20%20%20%22x509%22%3A%20%7B%0A%20%20%20%20%20%20%22clientCAFile%22%3A%20%22%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22webhook%22%3A%20%7B%0A%20%20%20%20%20%20%22cacheTTL%22%3A%20%220s%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22anonymous%22%3A%20%7B%0A%20%20%20%20%20%20%22enabled%22%3A%20false%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%20%20%22authorization%22%3A%20%7B%0A%20%20%20%20%22webhook%22%3A%20%7B%0A%20%20%20%20%20%20%22cacheAuthorizedTTL%22%3A%20%220s%22%2C%0A%20%20%20%20%20%20%22cacheUnauthorizedTTL%22%3A%20%220s%22%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%20%20%22clusterDomain%22%3A%20%22cluster.local%22%2C%0A%20%20%22clusterDNS%22%3A%20%5B%0A%20%20%20%20%22172.30.0.10%22%0A%20%20%5D%2C%0A%20%20%22streamingConnectionIdleTimeout%22%3A%20%220s%22%2C%0A%20%20%22nodeStatusUpdateFrequency%22%3A%20%220s%22%2C%0A%20%20%22nodeStatusReportFrequency%22%3A%20%220s%22%2C%0A%20%20%22imageMinimumGCAge%22%3A%20%220s%22%2C%0A%20%20%22volumeStatsAggPeriod%22%3A%20%220s%22%2C%0A%20%20%22systemCgroups%22%3A%20%22%2Fsystem.slice%22%2C%0A%20%20%22cgroupRoot%22%3A%20%22%2F%22%2C%0A%20%20%22cgroupDriver%22%3A%20%22systemd%22%2C%0A%20%20%22cpuManagerReconcilePeriod%22%3A%20%220s%22%2C%0A%20%20%22runtimeRequestTimeout%22%3A%20%220s%22%2C%0A%20%20%22maxPods%22%3A%20250%2C%0A%20%20%22kubeAPIQPS%22%3A%2050%2C%0A%20%20%22kubeAPIBurst%22%3A%20100%2C%0A%20%20%22serializeImagePulls%22%3A%20false%2C%0A%20%20%22evictionPressureTransitionPeriod%22%3A%20%220s%22%2C%0A%20%20%22featureGates%22%3A%20%7B%0A%20%20%20%20%22APIPriorityAndFairness%22%3A%20true%2C%0A%20%20%20%20%22DownwardAPIHugePages%22%3A%20true%2C%0A%20%20%20%20%22LegacyNodeRoleBehavior%22%3A%20false%2C%0A%20%20%20%20%22NodeDisruptionExclusion%22%3A%20true%2C%0A%20%20%20%20%22RotateKubeletServerCertificate%22%3A%20true%2C%0A%20%20%20%20%22ServiceNodeExclusion%22%3A%20true%2C%0A%20%20%20%20%22SupportPodPidsLimit%22%3A%20true%0A%20%20%7D%2C%0A%20%20%22containerLogMaxSize%22%3A%20%2250Mi%22%2C%0A%20%20%22systemReserved%22%3A%20%7B%0A%20%20%20%20%22ephemeral-storage%22%3A%20%221Gi%22%0A%20%20%7D%2C%0A%20%20%22logging%22%3A%20%7B%7D%2C%0A%20%20%22shutdownGracePeriod%22%3A%20%220s%22%2C%0A%20%20%22shutdownGracePeriodCriticalPods%22%3A%20%220s%22%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: ""
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
    creationTimestamp: "2021-08-18T15:35:50Z"
    generation: 15
    labels:
      machineconfiguration.openshift.io/role: worker
    name: 99-worker-generated-registries
    ownerReferences:
    - apiVersion: config.openshift.io/v1
      kind: Image
      name: cluster
      uid: b5b8a9fd-49f4-4f1f-be24-e4d7a6891aa7
    resourceVersion: "1036642155"
    uid: b68940b8-d11a-41c3-a047-644221b1dfa2
  spec:
    config:
      ignition:
        version: 3.2.0
      storage:
        files:
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: ""
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T15:32:03Z"
    generation: 1
    labels:
      machineconfiguration.openshift.io/role: worker
    name: 99-worker-ssh
    resourceVersion: "1923"
    uid: ba84f7e3-859b-4df9-a124-9aaff182325e
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
    extensions: null
    fips: false
    kernelArguments: null
    kernelType: ""
    osImageURL: ""
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:49:31Z"
    generation: 2
    labels:
      machineconfiguration.openshift.io/role: master
    name: master-ntp-configuration
    resourceVersion: "157993"
    uid: d425d5b9-f7ab-40bf-bd54-5acab7caece5
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          filesystem: root
          mode: 420
          path: /etc/chrony.conf
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-06-07T08:05:20Z"
    generation: 1
    name: rendered-master-052c9e4203ee1d2b9ef3e3aba6734621
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "642728634"
    uid: 427ec7bc-5678-4850-afc0-38c1f210452c
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 30c5add55bde21a400791b3601fff3cc41b0149d
      machineconfiguration.openshift.io/release-image-version: 4.8.51
    creationTimestamp: "2022-10-23T19:29:53Z"
    generation: 1
    name: rendered-master-0f6d919d2c83a8144c567919c99bb17c
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "988312498"
    uid: b144f4b7-8cbc-4f46-875b-c07da7a6410c
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af2242ac066837802e21f932ed20f0405b96c74c95c89380e389668ffcc777280%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A4dc854c1e0ca6e0a7d04d2829394cecd9cc9cfe8eec62c6e2f3cf6dc5401b488%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae522ba71bc0ce977870017ab9f7ec2fb60df0bd37bcc7195af63366fc739489f%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad45d02c3a6f9bcaee28ba7232a9d054ae8ec9bfccd1a504a00c597997e75e126%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d45d02c3a6f9bcaee28ba7232a9d054ae8ec9bfccd1a504a00c597997e75e126 \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9062bc656e624ca1bdddd00bd282badcba26ad5033b56a1b296d6e5ea4511fcd'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9062bc656e624ca1bdddd00bd282badcba26ad5033b56a1b296d6e5ea4511fcd' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8d53259469cf459f90bd80f7204d970c6a5e468338190b3b816059ecc8481542
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T18:36:21Z"
    generation: 1
    name: rendered-master-14bbb17a8ab5c1eeabe61b568fdfad5b
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "158035"
    uid: ddf5caf2-30f8-4df6-91b6-2253e042cf00
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-07-15T08:04:53Z"
    generation: 1
    name: rendered-master-2d7813ba17c3759d7a41cfef79e1fd74
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "748802061"
    uid: b7d6f848-b36f-4732-8e95-af6becb55315
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-08-18T15:23:32Z"
    generation: 1
    name: rendered-master-3e36f7ea286b225b994e0e6337a76019
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "832525586"
    uid: 75682e98-ba32-43de-931d-6b860920ab7b
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 51dc0801ed7d705820f557fcabf04eff023bf568
    creationTimestamp: "2022-01-19T10:53:08Z"
    generation: 1
    name: rendered-master-4164529318f3af44be1f3d3812d5a216
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "248597183"
    uid: bf825769-1cbb-4e8d-a6a4-2ae8fc72ec6f
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A790915e54be36106bd8e7700780cee399be71569f83d6aee6747c6a0131eb749%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Adcd16099d166b96542cc834607cb05d18be56b72ef58de952ba1532631a837f0%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2050936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20%20%20-%20%22-c%22%0A%20%20%20%20%20%20-%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20cp%20%2Fhost%2Fetc%2Fresolv.conf%20%2Fetc%2Fresolv.conf%0A%20%20%20%20%20%20%20%20monitor%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20%20%2Fconfig%2Fhaproxy.cfg.tmpl%20%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20--api-vip%20%3Cno%20value%3E%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2010%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20cmp%20%2Fhost%2Fetc%2Fresolv.conf%20%2Fetc%2Fresolv.conf%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A35fb1fa332ccc62cd5d766cebd15a5851c350a8f0d3f0acc341941cab2a76e81%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:368cf0f18de7bedb78063afa5acd50945a8b70f0d3b9cb3dd814279bcf1bc311
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 30c5add55bde21a400791b3601fff3cc41b0149d
      machineconfiguration.openshift.io/release-image-version: 4.8.51
    creationTimestamp: "2022-10-24T10:28:38Z"
    generation: 1
    name: rendered-master-4a4998d9a890b6489d5ce4bc92d04a0d
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "989789791"
    uid: 70bdc506-fc0a-4aa8-9a40-56826fe329c0
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af2242ac066837802e21f932ed20f0405b96c74c95c89380e389668ffcc777280%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A4dc854c1e0ca6e0a7d04d2829394cecd9cc9cfe8eec62c6e2f3cf6dc5401b488%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae522ba71bc0ce977870017ab9f7ec2fb60df0bd37bcc7195af63366fc739489f%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad45d02c3a6f9bcaee28ba7232a9d054ae8ec9bfccd1a504a00c597997e75e126%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d45d02c3a6f9bcaee28ba7232a9d054ae8ec9bfccd1a504a00c597997e75e126 \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9062bc656e624ca1bdddd00bd282badcba26ad5033b56a1b296d6e5ea4511fcd'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9062bc656e624ca1bdddd00bd282badcba26ad5033b56a1b296d6e5ea4511fcd' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8d53259469cf459f90bd80f7204d970c6a5e468338190b3b816059ecc8481542
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-09-29T15:44:09Z"
    generation: 1
    name: rendered-master-4b0d3e4bdf122ec002984fc6438d928e
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "931210565"
    uid: 8f34fcb7-7620-4c90-8512-8582af33b585
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-05-26T11:31:45Z"
    generation: 1
    name: rendered-master-4b88ef65e112d657f35d93c615ca71e0
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "606030761"
    uid: ed81ba1f-ccc1-48f9-91f5-828bbedb7bd0
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T15:35:54Z"
    generation: 1
    name: rendered-master-627f34574daebeac7cff1803a70ff23e
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "7076"
    uid: e65f97b9-7793-45e0-a6cf-51eaff9f6479
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:,%7B%0A%20%20%20%20%22default%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22insecureAcceptAnything%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%2C%0A%20%20%20%20%22transports%22%3A%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22docker-daemon%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%3A%20%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T16:50:10Z"
    generation: 1
    name: rendered-master-6500be2f6d3be23732ac1d01d87f8b89
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "62575"
    uid: 5ef06d20-6907-4e7d-aa39-da4e105a35ee
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KY29tbWFuZGtleSAxCmtleWZpbGUgL2V0Yy9jaHJvbnkua2V5cwpkcmlmdGZpbGUgL3Zhci9saWIvY2hyb255L2RyaWZ0Cm1ha2VzdGVwIDEgMwpydGNzeW5jCg==
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
      machineconfiguration.openshift.io/release-image-version: 4.8.53
    creationTimestamp: "2022-11-29T15:28:33Z"
    generation: 1
    name: rendered-master-67935d74d555ef9d92c52817a3941982
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "1072779949"
    uid: a6786ee1-3985-4e49-8293-7dcbc249f0e6
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A0bc95c9a9d52eb870744539490ece8394a1fb8e07bf775f393921c03f3470956%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A9444%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa2999182e95f9fe56f377750a1972e5eb06993cccfe398f72fb4abeb7cc23a2a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%209444%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A9b6774e15990c3ffa61724c4f0c4a0dc573367a70d53ecd64d8bed74e1b08720%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A27545663aa804e4a153ec7bf40761a4151d1baff6c230825dce4da9647952d5a%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:27545663aa804e4a153ec7bf40761a4151d1baff6c230825dce4da9647952d5a \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:17f74dc538a856192677a4ce0e1661ae721a23b3ba270db58f2b787082afb2f3'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:17f74dc538a856192677a4ce0e1661ae721a23b3ba270db58f2b787082afb2f3' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:34669a57488b9f00441d86e640c3cd50d633360cdcb4424e82a217dea667c0a5
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
      machineconfiguration.openshift.io/release-image-version: 4.8.52
    creationTimestamp: "2022-11-18T20:47:12Z"
    generation: 1
    name: rendered-master-76680c324f34bdeb6ca43e65cf9afa32
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "1047700366"
    uid: b449a91c-a462-4bdf-abf3-cc6e491d4237
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aede6f12f36526ae6f2f0edfe5827196812d6b67cb945382a6e74eabdc4d932eb%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A9444%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aea0b6e093e67609d93863ad1a9e1695759167a3c4508dc56e5ede1c913ee8e38%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%209444%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9ac9dfac75b137590ae52c2b7bceab3279ab104376e85ce2621b586de5994a9%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad72469f4d3b43df8f8a710403a33cea172eb3d680fad165df37f45a9d4d00436%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d72469f4d3b43df8f8a710403a33cea172eb3d680fad165df37f45a9d4d00436 \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5149e09733e608652625c4e79838dc043f631abb9cd0fca42cb2b675cfd276be'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5149e09733e608652625c4e79838dc043f631abb9cd0fca42cb2b675cfd276be' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7741e250bb33e4809b5057d0f89a1fc5ed5ff8fe1d98a4f2f87b3eaa37e12cb4
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T18:04:37Z"
    generation: 1
    name: rendered-master-7d9c841f51b8b2bd169eca0eb1543c36
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "123320"
    uid: 4592b7b4-bac5-4206-9926-8d90d2641a20
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KY29tbWFuZGtleSAxCmtleWZpbGUgL2V0Yy9jaHJvbnkua2V5cwpkcmlmdGZpbGUgL3Zhci9saWIvY2hyb255L2RyaWZ0Cm1ha2VzdGVwIDEgMwpydGNzeW5jCg==
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T16:54:08Z"
    generation: 1
    name: rendered-master-8a103d171ccb1b2d6ca7b6fb0907e421
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "70171"
    uid: f0b102a9-9824-4993-9af7-19464f728495
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KY29tbWFuZGtleSAxCmtleWZpbGUgL2V0Yy9jaHJvbnkua2V5cwpkcmlmdGZpbGUgL3Zhci9saWIvY2hyb255L2RyaWZ0Cm1ha2VzdGVwIDEgMwpydGNzeW5jCg==
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-10-02T07:42:34Z"
    generation: 1
    name: rendered-master-90f38a5663125da003a9bfc07f144b9f
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "937518064"
    uid: 2bc2c9db-b443-4f5f-9e5a-b825fb4bd4b9
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T16:47:55Z"
    generation: 1
    name: rendered-master-961f07c72cb14dc8a9149203c86d62d0
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "55937"
    uid: a4a8cf27-82dc-458c-9a1e-da83c59a221a
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:,%7B%0A%20%20%20%20%22default%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22insecureAcceptAnything%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%2C%0A%20%20%20%20%22transports%22%3A%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22docker-daemon%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%3A%20%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-09-29T14:45:16Z"
    generation: 1
    name: rendered-master-a2d3d6745f0d1cc805299a574c422886
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "931106537"
    uid: 75e110db-d26b-47eb-94cc-f1c35b372cdc
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-09-29T17:01:44Z"
    generation: 1
    name: rendered-master-a3f428e8ee15d7ff6320b4e5570f19bf
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "931335905"
    uid: 427c3b30-0981-4ac0-a3be-3789d8d06f91
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 51dc0801ed7d705820f557fcabf04eff023bf568
    creationTimestamp: "2022-01-24T09:01:13Z"
    generation: 1
    name: rendered-master-a41d31fbc9de8a6072030d99b15db2c0
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "260927025"
    uid: 82f38a48-8092-40f9-8e30-25f3221ff3f4
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A790915e54be36106bd8e7700780cee399be71569f83d6aee6747c6a0131eb749%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Adcd16099d166b96542cc834607cb05d18be56b72ef58de952ba1532631a837f0%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2050936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20%20%20-%20%22-c%22%0A%20%20%20%20%20%20-%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20cp%20%2Fhost%2Fetc%2Fresolv.conf%20%2Fetc%2Fresolv.conf%0A%20%20%20%20%20%20%20%20monitor%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20%20%2Fconfig%2Fhaproxy.cfg.tmpl%20%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20--api-vip%20%3Cno%20value%3E%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2010%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20cmp%20%2Fhost%2Fetc%2Fresolv.conf%20%2Fetc%2Fresolv.conf%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A35fb1fa332ccc62cd5d766cebd15a5851c350a8f0d3f0acc341941cab2a76e81%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:368cf0f18de7bedb78063afa5acd50945a8b70f0d3b9cb3dd814279bcf1bc311
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-07-18T13:33:31Z"
    generation: 1
    name: rendered-master-af2e35ceed085392aaca4239c05d0a36
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "756550356"
    uid: 5a2ef1b1-67e9-42b0-9474-b3821c0489ef
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d6d26e1f4e1fc0ed49e4c443bf02bdc376e756b3
    creationTimestamp: "2021-09-14T20:54:01Z"
    generation: 1
    name: rendered-master-b337c7798853c8cdc5eab34b3990f72d
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "30138905"
    uid: 27718cb2-9c76-496d-a089-f51cdc9da10b
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%C2%A0%7C%20grep%20'ip%3A'%20%7C%20grep%20%7B%7B.NonVirtualIP%7D%7D%20%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A6b94dad529eacf6b4334a06e6213fd07f0d478b7d7795bb861650f297fe3249a%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6b94dad529eacf6b4334a06e6213fd07f0d478b7d7795bb861650f297fe3249a \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8fdf3d80a9128825ba1d73f5cd31a261c21576be781ab3657e8fc8b3c1823210'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8fdf3d80a9128825ba1d73f5cd31a261c21576be781ab3657e8fc8b3c1823210' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8146a13a1c09f8986e7390d39408dcbdb4a92035680c5ca6ab1aa73a12ddc005 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9a4c9b60cca6ae3fdeeb785bfcdec98bc57e12234be3ef7a9a3dca9bcc3680d3
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-06-07T08:05:25Z"
    generation: 1
    name: rendered-master-c91140a139ca7b2e2e4a8fde503c381d
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "642728854"
    uid: 7e1f132b-6248-4a69-af2d-255f66f511e0
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-04-06T14:36:43Z"
    generation: 1
    name: rendered-master-cdf5c3ae5abcae12b8d8f5611fd3949f
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "458566553"
    uid: ff0a779d-4b3b-4437-b50b-6e0de410f736
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-06-06T15:23:35Z"
    generation: 1
    name: rendered-master-d06676b2dcd5896bdb6e38f436d5ae4c
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "640548859"
    uid: 1be492fc-4e23-49d9-95a4-05988ecdd583
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A30936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad4b026d1f0bb84251f8f40bd116b4e51076edf5cc60762d9a20b1704df57d416%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2030936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 51dc0801ed7d705820f557fcabf04eff023bf568
    creationTimestamp: "2022-01-24T10:56:44Z"
    generation: 1
    name: rendered-master-e57d81778c2d83d23497a2edbd3895ea
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "261147540"
    uid: 53b27daa-843e-42c1-b4ad-edeac530a4bd
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A790915e54be36106bd8e7700780cee399be71569f83d6aee6747c6a0131eb749%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Adcd16099d166b96542cc834607cb05d18be56b72ef58de952ba1532631a837f0%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2050936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20%20%20-%20%22-c%22%0A%20%20%20%20%20%20-%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20cp%20%2Fhost%2Fetc%2Fresolv.conf%20%2Fetc%2Fresolv.conf%0A%20%20%20%20%20%20%20%20monitor%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20%20%2Fconfig%2Fhaproxy.cfg.tmpl%20%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20--api-vip%20%3Cno%20value%3E%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2010%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20cmp%20%2Fhost%2Fetc%2Fresolv.conf%20%2Fetc%2Fresolv.conf%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A35fb1fa332ccc62cd5d766cebd15a5851c350a8f0d3f0acc341941cab2a76e81%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:368cf0f18de7bedb78063afa5acd50945a8b70f0d3b9cb3dd814279bcf1bc311
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 04bcf9c68926dc323eba73bd85cd22d13efafef7
    creationTimestamp: "2021-11-29T10:05:32Z"
    generation: 1
    name: rendered-master-edadd502c943877d87b4e38a52ff7fda
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "119592045"
    uid: 251ea5a8-09a4-435f-9979-0c348b3b44d0
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A790915e54be36106bd8e7700780cee399be71569f83d6aee6747c6a0131eb749%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Adcd16099d166b96542cc834607cb05d18be56b72ef58de952ba1532631a837f0%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%2050936%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20%20%20-%20%22-c%22%0A%20%20%20%20%20%20-%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20cp%20%2Fhost%2Fetc%2Fresolv.conf%20%2Fetc%2Fresolv.conf%0A%20%20%20%20%20%20%20%20monitor%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20%20%2Fconfig%2Fhaproxy.cfg.tmpl%20%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20--api-vip%20%3Cno%20value%3E%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2010%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20cmp%20%2Fhost%2Fetc%2Fresolv.conf%20%2Fetc%2Fresolv.conf%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%C2%A0%7C%20grep%20'ip%3A'%20%7C%20grep%20%7B%7B.NonVirtualIP%7D%7D%20%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A35fb1fa332ccc62cd5d766cebd15a5851c350a8f0d3f0acc341941cab2a76e81%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:78708497348d5cf12fc93920a83576018088e14320537d3210692470861fc1b8'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:78708497348d5cf12fc93920a83576018088e14320537d3210692470861fc1b8' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:449a98d758fd50b69a40bdaee4747302f721f8b0ec8ebd47dd0cb7be7e1d0706
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
      machineconfiguration.openshift.io/release-image-version: 4.8.52
    creationTimestamp: "2022-11-13T21:40:00Z"
    generation: 1
    name: rendered-master-fb0f37bb109d543287a7cc9ddd99cf9a
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "1036642321"
    uid: c8721966-20c3-4180-a2c6-9abc9711671a
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aede6f12f36526ae6f2f0edfe5827196812d6b67cb945382a6e74eabdc4d932eb%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,global%0A%20%20stats%20socket%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20%20mode%20600%20level%20admin%20expose-fd%20listeners%0Adefaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2030s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A9444%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20haproxy%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-api-lb%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fhaproxy%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20verify-api-int-resolvable%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20nodes%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20haproxy%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aea0b6e093e67609d93863ad1a9e1695759167a3c4508dc56e5ede1c913ee8e38%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20value%3A%20%22120%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%22%2Fbin%2Fbash%22%0A%20%20%20%20-%20%22-c%22%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20local%20prev_pids%0A%0A%20%20%20%20%20%20%20%20prev_pids%3D%22%241%22%0A%20%20%20%20%20%20%20%20sleep%20%24OLD_HAPROXY_PS_FORCE_DEL_TIMEOUT%0A%20%20%20%20%20%20%20%20cur_pids%3D%24(pidof%20haproxy)%0A%0A%20%20%20%20%20%20%20%20for%20val%20in%20%24prev_pids%3B%20do%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%5B%5B%20%24cur_pids%20%3D~%20(%5E%7C%5B%5B%3Aspace%3A%5D%5D)%22%24val%22(%24%7C%5B%5B%3Aspace%3A%5D%5D)%20%5D%5D%20%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kill%20%24val%0A%20%20%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_haproxy()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20old_pids%3D%24(pidof%20haproxy)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24old_pids%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20-x%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.sock%20-sf%20%24old_pids%20%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%23There%20seems%20to%20be%20some%20cases%20where%20HAProxy%20doesn't%20drain%20properly.%0A%20%20%20%20%20%20%20%20%20%20%20%20%23To%20handle%20that%20case%2C%20SIGTERM%20signal%20being%20sent%20to%20old%20HAProxy%20processes%20which%20haven't%20terminated.%0A%20%20%20%20%20%20%20%20%20%20%20%20verify_old_haproxy_ps_being_deleted%20%22%24old_pids%22%20%20%26%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20send%3A%20%24line%22%20%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_haproxy%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20declare%20-r%20haproxy_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-master.sock%22%0A%20%20%20%20%20%20declare%20-r%20haproxy_log_sock%3D%22%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_haproxy%0A%20%20%20%20%20%20export%20-f%20verify_old_haproxy_ps_being_deleted%0A%20%20%20%20%20%20rm%20-f%20%22%24haproxy_sock%22%20%22%24haproxy_log_sock%22%0A%20%20%20%20%20%20socat%20UNIX-RECV%3A%24%7Bhaproxy_log_sock%7D%20STDOUT%20%26%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fhaproxy%20-W%20-db%20-f%20%2Fetc%2Fhaproxy%2Fhaproxy.cfg%20%20-p%20%2Fvar%2Flib%2Fhaproxy%2Frun%2Fhaproxy.pid%20%26%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bhaproxy_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20initialDelaySeconds%3A%2050%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhaproxy_ready%0A%20%20%20%20%20%20%20%20port%3A%209444%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20haproxy-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20monitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fhaproxy.cfg.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fhaproxy%2Fhaproxy.cfg%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fhaproxy%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.Address%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9ac9dfac75b137590ae52c2b7bceab3279ab104376e85ce2621b586de5994a9%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad72469f4d3b43df8f8a710403a33cea172eb3d680fad165df37f45a9d4d00436%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d72469f4d3b43df8f8a710403a33cea172eb3d680fad165df37f45a9d4d00436 \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5149e09733e608652625c4e79838dc043f631abb9cd0fca42cb2b675cfd276be'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5149e09733e608652625c4e79838dc043f631abb9cd0fca42cb2b675cfd276be' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7741e250bb33e4809b5057d0f89a1fc5ed5ff8fe1d98a4f2f87b3eaa37e12cb4
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T16:51:38Z"
    generation: 1
    name: rendered-master-fb53bf0b0dea341d3a102bd0391e4e2f
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: master
      uid: 52eae1f4-3846-42c3-a389-f686aa070a63
    resourceVersion: "65600"
    uid: 4e828b12-1869-42e4-9e96-a0c1424c13a5
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,KUBERNETES_SERVICE_HOST%3D'api-int.atl-prd-ocp-02.cl.sec.ibm.com'%0AKUBERNETES_SERVICE_PORT%3D'6443'%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/apiserver-url.env
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,defaults%0A%20%20maxconn%2020000%0A%20%20mode%20%20%20%20tcp%0A%20%20log%20%20%20%20%20%2Fvar%2Frun%2Fhaproxy%2Fhaproxy-log.sock%20local0%0A%20%20option%20%20dontlognull%0A%20%20retries%203%0A%20%20timeout%20http-request%2010s%0A%20%20timeout%20queue%20%20%20%20%20%20%20%201m%0A%20%20timeout%20connect%20%20%20%20%20%2010s%0A%20%20timeout%20client%20%20%20%20%20%20%2086400s%0A%20%20timeout%20server%20%20%20%20%20%20%2086400s%0A%20%20timeout%20tunnel%20%20%20%20%20%20%2086400s%0Afrontend%20%20main%0A%20%20bind%20%3A%3A%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%20v4v6%0A%20%20default_backend%20masters%0Alisten%20health_check_http_url%0A%20%20bind%20%3A%3A%3A50936%20v4v6%0A%20%20mode%20http%0A%20%20monitor-uri%20%2Fhaproxy_ready%0A%20%20option%20dontlognull%0Alisten%20stats%0A%20%20bind%20localhost%3A%7B%7B%20.LBConfig.StatPort%20%7D%7D%0A%20%20mode%20http%0A%20%20stats%20enable%0A%20%20stats%20hide-version%0A%20%20stats%20uri%20%2Fhaproxy_stats%0A%20%20stats%20refresh%2030s%0A%20%20stats%20auth%20Username%3APassword%0Abackend%20masters%0A%20%20%20option%20%20httpchk%20GET%20%2Freadyz%20HTTP%2F1.0%0A%20%20%20option%20%20log-health-checks%0A%20%20%20balance%20roundrobin%0A%7B%7B-%20range%20.LBConfig.Backends%20%7D%7D%0A%20%20%20server%20%7B%7B%20.Host%20%7D%7D%20%7B%7B%20.Address%20%7D%7D%3A%7B%7B%20.Port%20%7D%7D%20weight%201%20verify%20none%20check%20check-ssl%20inter%201s%20fall%202%20rise%203%0A%7B%7B-%20end%20%7D%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/haproxy/haproxy.cfg.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/haproxy.yaml
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%7D%0A%0A%23%20These%20are%20separate%20checks%20to%20provide%20the%20following%20behavior%3A%0A%23%20If%20the%20loadbalanced%20endpoint%20is%20responding%20then%20all%20is%20well%20regardless%0A%23%20of%20what%20the%20local%20api%20status%20is.%20Both%20checks%20will%20return%20success%20and%0A%23%20we'll%20have%20the%20maximum%20priority.%20This%20means%20as%20long%20as%20there%20is%20a%20node%0A%23%20with%20a%20functional%20loadbalancer%20it%20will%20get%20the%20VIP.%0A%23%20If%20all%20of%20the%20loadbalancers%20go%20down%20but%20the%20local%20api%20is%20still%20running%2C%0A%23%20the%20_both%20check%20will%20still%20succeed%20and%20allow%20any%20node%20with%20a%20functional%0A%23%20api%20to%20take%20the%20VIP.%20This%20isn't%20preferred%20because%20it%20means%20all%20api%0A%23%20traffic%20will%20go%20through%20one%20node%2C%20but%20at%20least%20it%20keeps%20the%20api%20available.%0Avrrp_script%20chk_ocp_lb%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20weight%2020%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0Avrrp_script%20chk_ocp_both%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%201.9%20%2Fetc%2Fkeepalived%2Fchk_ocp_script_both.sh%22%0A%20%20%20%20interval%202%0A%20%20%20%20%23%20Use%20a%20smaller%20weight%20for%20this%20check%20so%20it%20won't%20trigger%20the%20move%20from%0A%20%20%20%20%23%20bootstrap%20to%20master%20by%20itself.%0A%20%20%20%20weight%205%0A%20%20%20%20rise%203%0A%20%20%20%20fall%202%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_API%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.APIVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.LBConfig.Backends%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.Address%7D%7D%7B%7B.Address%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_api_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.APIVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ocp_lb%0A%20%20%20%20%20%20%20%20chk_ocp_both%0A%20%20%20%20%7D%0A%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%20-%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%20%7C%7C%20%2Fusr%2Fbin%2Fcurl%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.ApiPort%20%7D%7D%2Freadyz%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script_both.sh.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-kLfs%20https%3A%2F%2Flocalhost%3A%7B%7B%20.LBConfig.LbPort%20%7D%7D%2Freadyz%20%26%26%20%5B%20-e%20%2Fvar%2Frun%2Fkeepalived%2Fiptables-rule-exists%20%5D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_ocp_script.sh.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%0Aset%20-eou%20pipefail%0A%0A%23%20context%0Aintapi%3D%24(oc%20get%20infrastructures.config.openshift.io%20cluster%20-o%20%22jsonpath%3D%7B.status.apiServerInternalURI%7D%22)%0Acontext%3D%22%24(oc%20config%20current-context)%22%0A%23%20cluster%0Acluster%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.contexts%5B%3F(%40.name%3D%3D%5C%22%24context%5C%22)%5D.context.cluster%7D%22)%22%0Aserver%3D%22%24(oc%20config%20view%20-o%20%22jsonpath%3D%7B.clusters%5B%3F(%40.name%3D%3D%5C%22%24cluster%5C%22)%5D.cluster.server%7D%22)%22%0A%23%20token%0Aca_crt_data%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.ca%5C.crt%7D%22%20%7C%20base64%20--decode)%22%0Anamespace%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20%20-o%20%22jsonpath%3D%7B.data.namespace%7D%22%20%7C%20base64%20--decode)%22%0Atoken%3D%22%24(oc%20get%20secret%20-n%20openshift-machine-config-operator%20node-bootstrapper-token%20-o%20%22jsonpath%3D%7B.data.token%7D%22%20%7C%20base64%20--decode)%22%0A%0Aexport%20KUBECONFIG%3D%22%24(mktemp)%22%0Akubectl%20config%20set-credentials%20%22kubelet%22%20--token%3D%22%24token%22%20%3E%2Fdev%2Fnull%0Aca_crt%3D%22%24(mktemp)%22%3B%20echo%20%22%24ca_crt_data%22%20%3E%20%24ca_crt%0Akubectl%20config%20set-cluster%20%24cluster%20--server%3D%22%24intapi%22%20--certificate-authority%3D%22%24ca_crt%22%20--embed-certs%20%3E%2Fdev%2Fnull%0Akubectl%20config%20set-context%20kubelet%20--cluster%3D%22%24cluster%22%20--user%3D%22kubelet%22%20%3E%2Fdev%2Fnull%0Akubectl%20config%20use-context%20kubelet%20%3E%2Fdev%2Fnull%0Acat%20%22%24KUBECONFIG%22%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/recover-kubeconfig.sh
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KY29tbWFuZGtleSAxCmtleWZpbGUgL2V0Yy9jaHJvbnkua2V5cwpkcmlmdGZpbGUgL3Zhci9saWIvY2hyb255L2RyaWZ0Cm1ha2VzdGVwIDEgMwpydGNzeW5jCg==
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/master,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --cloud-provider=vsphere \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - dropins:
          - contents: |
              # See https://github.com/openshift/machine-config-operator/issues/1897
              [Service]
              Nice=10
              IOSchedulingClass=best-effort
              IOSchedulingPriority=6
            name: mco-controlplane-nice.conf
          name: rpm-ostreed.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d6d26e1f4e1fc0ed49e4c443bf02bdc376e756b3
    creationTimestamp: "2021-09-14T20:54:01Z"
    generation: 1
    name: rendered-worker-0c52cb94986b9334c1501d894cb7533a
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "30138906"
    uid: 80058aab-fa4d-4014-8a31-227776288b8b
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%C2%A0%7C%20grep%20'ip%3A'%20%7C%20grep%20%7B%7B.NonVirtualIP%7D%7D%20%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A6b94dad529eacf6b4334a06e6213fd07f0d478b7d7795bb861650f297fe3249a%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6b94dad529eacf6b4334a06e6213fd07f0d478b7d7795bb861650f297fe3249a \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8fdf3d80a9128825ba1d73f5cd31a261c21576be781ab3657e8fc8b3c1823210'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8fdf3d80a9128825ba1d73f5cd31a261c21576be781ab3657e8fc8b3c1823210' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8146a13a1c09f8986e7390d39408dcbdb4a92035680c5ca6ab1aa73a12ddc005 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9a4c9b60cca6ae3fdeeb785bfcdec98bc57e12234be3ef7a9a3dca9bcc3680d3
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
      machineconfiguration.openshift.io/release-image-version: 4.8.52
    creationTimestamp: "2022-11-22T09:50:35Z"
    generation: 1
    name: rendered-worker-114221587b86cfe7d706b8c40889b4a5
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "1055773912"
    uid: fa9f8e16-25de-4b03-94c0-ec6cb3769a2a
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aede6f12f36526ae6f2f0edfe5827196812d6b67cb945382a6e74eabdc4d932eb%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9ac9dfac75b137590ae52c2b7bceab3279ab104376e85ce2621b586de5994a9%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:text/plain,NODE_SIZING_ENABLED%3Dtrue%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m%0A
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad72469f4d3b43df8f8a710403a33cea172eb3d680fad165df37f45a9d4d00436%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:text/plain,%7B%0A%20%20%22kind%22%3A%20%22KubeletConfiguration%22%2C%0A%20%20%22apiVersion%22%3A%20%22kubelet.config.k8s.io%2Fv1beta1%22%2C%0A%20%20%22staticPodPath%22%3A%20%22%2Fetc%2Fkubernetes%2Fmanifests%22%2C%0A%20%20%22syncFrequency%22%3A%20%220s%22%2C%0A%20%20%22fileCheckFrequency%22%3A%20%220s%22%2C%0A%20%20%22httpCheckFrequency%22%3A%20%220s%22%2C%0A%20%20%22tlsCipherSuites%22%3A%20%5B%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%22%2C%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%22%0A%20%20%5D%2C%0A%20%20%22tlsMinVersion%22%3A%20%22VersionTLS12%22%2C%0A%20%20%22rotateCertificates%22%3A%20true%2C%0A%20%20%22serverTLSBootstrap%22%3A%20true%2C%0A%20%20%22authentication%22%3A%20%7B%0A%20%20%20%20%22x509%22%3A%20%7B%0A%20%20%20%20%20%20%22clientCAFile%22%3A%20%22%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22webhook%22%3A%20%7B%0A%20%20%20%20%20%20%22cacheTTL%22%3A%20%220s%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22anonymous%22%3A%20%7B%0A%20%20%20%20%20%20%22enabled%22%3A%20false%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%20%20%22authorization%22%3A%20%7B%0A%20%20%20%20%22webhook%22%3A%20%7B%0A%20%20%20%20%20%20%22cacheAuthorizedTTL%22%3A%20%220s%22%2C%0A%20%20%20%20%20%20%22cacheUnauthorizedTTL%22%3A%20%220s%22%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%20%20%22clusterDomain%22%3A%20%22cluster.local%22%2C%0A%20%20%22clusterDNS%22%3A%20%5B%0A%20%20%20%20%22172.30.0.10%22%0A%20%20%5D%2C%0A%20%20%22streamingConnectionIdleTimeout%22%3A%20%220s%22%2C%0A%20%20%22nodeStatusUpdateFrequency%22%3A%20%220s%22%2C%0A%20%20%22nodeStatusReportFrequency%22%3A%20%220s%22%2C%0A%20%20%22imageMinimumGCAge%22%3A%20%220s%22%2C%0A%20%20%22volumeStatsAggPeriod%22%3A%20%220s%22%2C%0A%20%20%22systemCgroups%22%3A%20%22%2Fsystem.slice%22%2C%0A%20%20%22cgroupRoot%22%3A%20%22%2F%22%2C%0A%20%20%22cgroupDriver%22%3A%20%22systemd%22%2C%0A%20%20%22cpuManagerReconcilePeriod%22%3A%20%220s%22%2C%0A%20%20%22runtimeRequestTimeout%22%3A%20%220s%22%2C%0A%20%20%22maxPods%22%3A%20250%2C%0A%20%20%22kubeAPIQPS%22%3A%2050%2C%0A%20%20%22kubeAPIBurst%22%3A%20100%2C%0A%20%20%22serializeImagePulls%22%3A%20false%2C%0A%20%20%22evictionPressureTransitionPeriod%22%3A%20%220s%22%2C%0A%20%20%22featureGates%22%3A%20%7B%0A%20%20%20%20%22APIPriorityAndFairness%22%3A%20true%2C%0A%20%20%20%20%22DownwardAPIHugePages%22%3A%20true%2C%0A%20%20%20%20%22LegacyNodeRoleBehavior%22%3A%20false%2C%0A%20%20%20%20%22NodeDisruptionExclusion%22%3A%20true%2C%0A%20%20%20%20%22RotateKubeletServerCertificate%22%3A%20true%2C%0A%20%20%20%20%22ServiceNodeExclusion%22%3A%20true%2C%0A%20%20%20%20%22SupportPodPidsLimit%22%3A%20true%0A%20%20%7D%2C%0A%20%20%22containerLogMaxSize%22%3A%20%2250Mi%22%2C%0A%20%20%22systemReserved%22%3A%20%7B%0A%20%20%20%20%22ephemeral-storage%22%3A%20%221Gi%22%0A%20%20%7D%2C%0A%20%20%22logging%22%3A%20%7B%7D%2C%0A%20%20%22shutdownGracePeriod%22%3A%20%220s%22%2C%0A%20%20%22shutdownGracePeriodCriticalPods%22%3A%20%220s%22%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d72469f4d3b43df8f8a710403a33cea172eb3d680fad165df37f45a9d4d00436 \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5149e09733e608652625c4e79838dc043f631abb9cd0fca42cb2b675cfd276be'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5149e09733e608652625c4e79838dc043f631abb9cd0fca42cb2b675cfd276be' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7741e250bb33e4809b5057d0f89a1fc5ed5ff8fe1d98a4f2f87b3eaa37e12cb4
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 30c5add55bde21a400791b3601fff3cc41b0149d
      machineconfiguration.openshift.io/release-image-version: 4.8.51
    creationTimestamp: "2022-10-24T11:01:34Z"
    generation: 1
    name: rendered-worker-1520bdfbe3292b73b8894555d7724090
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "989853326"
    uid: 9cdc3545-6060-497a-a1a2-fa8b90732681
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af2242ac066837802e21f932ed20f0405b96c74c95c89380e389668ffcc777280%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae522ba71bc0ce977870017ab9f7ec2fb60df0bd37bcc7195af63366fc739489f%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad45d02c3a6f9bcaee28ba7232a9d054ae8ec9bfccd1a504a00c597997e75e126%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d45d02c3a6f9bcaee28ba7232a9d054ae8ec9bfccd1a504a00c597997e75e126 \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9062bc656e624ca1bdddd00bd282badcba26ad5033b56a1b296d6e5ea4511fcd'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9062bc656e624ca1bdddd00bd282badcba26ad5033b56a1b296d6e5ea4511fcd' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8d53259469cf459f90bd80f7204d970c6a5e468338190b3b816059ecc8481542
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
      machineconfiguration.openshift.io/release-image-version: 4.8.52
    creationTimestamp: "2022-11-13T21:40:00Z"
    generation: 1
    name: rendered-worker-1681bb6763b43c03e626062ca214ddd2
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "1036642320"
    uid: 4fbace7c-785b-41fa-8028-1a7900fa6d40
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aede6f12f36526ae6f2f0edfe5827196812d6b67cb945382a6e74eabdc4d932eb%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9ac9dfac75b137590ae52c2b7bceab3279ab104376e85ce2621b586de5994a9%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad72469f4d3b43df8f8a710403a33cea172eb3d680fad165df37f45a9d4d00436%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d72469f4d3b43df8f8a710403a33cea172eb3d680fad165df37f45a9d4d00436 \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5149e09733e608652625c4e79838dc043f631abb9cd0fca42cb2b675cfd276be'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5149e09733e608652625c4e79838dc043f631abb9cd0fca42cb2b675cfd276be' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7741e250bb33e4809b5057d0f89a1fc5ed5ff8fe1d98a4f2f87b3eaa37e12cb4
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T16:54:08Z"
    generation: 1
    name: rendered-worker-1a815ef1b11f4edf7be0b6dc6b9242d8
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "70172"
    uid: 9908e1b7-49eb-4d10-8c6e-65fcaabcd75c
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
      machineconfiguration.openshift.io/release-image-version: 4.8.52
    creationTimestamp: "2022-11-19T09:43:35Z"
    generation: 1
    name: rendered-worker-1ca202f51d7bd4dd4dc5e6b3f54fda3a
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "1048940872"
    uid: 1e5e2797-6ac4-4c99-afc7-a0082023a636
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aede6f12f36526ae6f2f0edfe5827196812d6b67cb945382a6e74eabdc4d932eb%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9ac9dfac75b137590ae52c2b7bceab3279ab104376e85ce2621b586de5994a9%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:text/plain,NODE_SIZING_ENABLED%3Dtrue%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m%0A
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad72469f4d3b43df8f8a710403a33cea172eb3d680fad165df37f45a9d4d00436%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:text/plain,%7B%0A%20%20%22kind%22%3A%20%22KubeletConfiguration%22%2C%0A%20%20%22apiVersion%22%3A%20%22kubelet.config.k8s.io%2Fv1beta1%22%2C%0A%20%20%22staticPodPath%22%3A%20%22%2Fetc%2Fkubernetes%2Fmanifests%22%2C%0A%20%20%22syncFrequency%22%3A%20%220s%22%2C%0A%20%20%22fileCheckFrequency%22%3A%20%220s%22%2C%0A%20%20%22httpCheckFrequency%22%3A%20%220s%22%2C%0A%20%20%22tlsCipherSuites%22%3A%20%5B%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%22%2C%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%22%0A%20%20%5D%2C%0A%20%20%22tlsMinVersion%22%3A%20%22VersionTLS12%22%2C%0A%20%20%22rotateCertificates%22%3A%20true%2C%0A%20%20%22serverTLSBootstrap%22%3A%20true%2C%0A%20%20%22authentication%22%3A%20%7B%0A%20%20%20%20%22x509%22%3A%20%7B%0A%20%20%20%20%20%20%22clientCAFile%22%3A%20%22%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22webhook%22%3A%20%7B%0A%20%20%20%20%20%20%22cacheTTL%22%3A%20%220s%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22anonymous%22%3A%20%7B%0A%20%20%20%20%20%20%22enabled%22%3A%20false%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%20%20%22authorization%22%3A%20%7B%0A%20%20%20%20%22webhook%22%3A%20%7B%0A%20%20%20%20%20%20%22cacheAuthorizedTTL%22%3A%20%220s%22%2C%0A%20%20%20%20%20%20%22cacheUnauthorizedTTL%22%3A%20%220s%22%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%20%20%22clusterDomain%22%3A%20%22cluster.local%22%2C%0A%20%20%22clusterDNS%22%3A%20%5B%0A%20%20%20%20%22172.30.0.10%22%0A%20%20%5D%2C%0A%20%20%22streamingConnectionIdleTimeout%22%3A%20%220s%22%2C%0A%20%20%22nodeStatusUpdateFrequency%22%3A%20%220s%22%2C%0A%20%20%22nodeStatusReportFrequency%22%3A%20%220s%22%2C%0A%20%20%22imageMinimumGCAge%22%3A%20%220s%22%2C%0A%20%20%22volumeStatsAggPeriod%22%3A%20%220s%22%2C%0A%20%20%22systemCgroups%22%3A%20%22%2Fsystem.slice%22%2C%0A%20%20%22cgroupRoot%22%3A%20%22%2F%22%2C%0A%20%20%22cgroupDriver%22%3A%20%22systemd%22%2C%0A%20%20%22cpuManagerReconcilePeriod%22%3A%20%220s%22%2C%0A%20%20%22runtimeRequestTimeout%22%3A%20%220s%22%2C%0A%20%20%22maxPods%22%3A%20250%2C%0A%20%20%22kubeAPIQPS%22%3A%2050%2C%0A%20%20%22kubeAPIBurst%22%3A%20100%2C%0A%20%20%22serializeImagePulls%22%3A%20false%2C%0A%20%20%22evictionPressureTransitionPeriod%22%3A%20%220s%22%2C%0A%20%20%22featureGates%22%3A%20%7B%0A%20%20%20%20%22APIPriorityAndFairness%22%3A%20true%2C%0A%20%20%20%20%22DownwardAPIHugePages%22%3A%20true%2C%0A%20%20%20%20%22LegacyNodeRoleBehavior%22%3A%20false%2C%0A%20%20%20%20%22NodeDisruptionExclusion%22%3A%20true%2C%0A%20%20%20%20%22RotateKubeletServerCertificate%22%3A%20true%2C%0A%20%20%20%20%22ServiceNodeExclusion%22%3A%20true%2C%0A%20%20%20%20%22SupportPodPidsLimit%22%3A%20true%0A%20%20%7D%2C%0A%20%20%22containerLogMaxSize%22%3A%20%2250Mi%22%2C%0A%20%20%22systemReserved%22%3A%20%7B%0A%20%20%20%20%22ephemeral-storage%22%3A%20%221Gi%22%0A%20%20%7D%2C%0A%20%20%22logging%22%3A%20%7B%7D%2C%0A%20%20%22shutdownGracePeriod%22%3A%20%220s%22%2C%0A%20%20%22shutdownGracePeriodCriticalPods%22%3A%20%220s%22%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d72469f4d3b43df8f8a710403a33cea172eb3d680fad165df37f45a9d4d00436 \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5149e09733e608652625c4e79838dc043f631abb9cd0fca42cb2b675cfd276be'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5149e09733e608652625c4e79838dc043f631abb9cd0fca42cb2b675cfd276be' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e9667a1afc64eceacc351f09eafc88854d83762add03ecb5266156d0caefc324 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7741e250bb33e4809b5057d0f89a1fc5ed5ff8fe1d98a4f2f87b3eaa37e12cb4
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 51dc0801ed7d705820f557fcabf04eff023bf568
    creationTimestamp: "2022-01-24T10:56:44Z"
    generation: 1
    name: rendered-worker-23b4f4a585af33389308a9dd68307098
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "261147552"
    uid: 2e202d07-adcd-46e8-845b-0f0f018dc810
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A790915e54be36106bd8e7700780cee399be71569f83d6aee6747c6a0131eb749%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A35fb1fa332ccc62cd5d766cebd15a5851c350a8f0d3f0acc341941cab2a76e81%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:368cf0f18de7bedb78063afa5acd50945a8b70f0d3b9cb3dd814279bcf1bc311
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T18:04:07Z"
    generation: 1
    name: rendered-worker-2648f49bf43ad8a5aedd2119b2f4854e
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "122659"
    uid: 62b340ea-bfcc-4616-9d7c-3089ea862242
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-09-29T17:01:44Z"
    generation: 1
    name: rendered-worker-343b7dee949ec595faf3c940b81d4ce3
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "931335898"
    uid: c2e8d01f-94ac-4469-985f-43ff5a884149
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-10-02T07:42:34Z"
    generation: 1
    name: rendered-worker-4ddac01fd5b89b31fbd19747b78f9b9a
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "937518069"
    uid: 8129288d-d48f-43f7-b0d8-ca5c2a815b6d
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-06-06T15:23:35Z"
    generation: 1
    name: rendered-worker-739e5945ba2408eaf45354fd5739df4c
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "640548858"
    uid: a2befe42-84df-4cba-a605-5ac41a1b6a99
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-08-18T15:23:32Z"
    generation: 1
    name: rendered-worker-794b01a93e11e9ca44f8b4f7ec70d4b0
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "832525587"
    uid: a4414307-4065-4272-84c4-5484c98a3c9e
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T16:50:10Z"
    generation: 1
    name: rendered-worker-88f66a603767746478b873c4aa549814
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "62574"
    uid: 4a01ef1f-8d79-4545-8215-26ba2bdd3ec3
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-05-26T11:31:45Z"
    generation: 1
    name: rendered-worker-94a90a1a3e0018f6af50c93159d7862d
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "606030755"
    uid: d30687b5-9078-4f81-874d-0f86ae6ff1b0
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T15:35:54Z"
    generation: 1
    name: rendered-worker-95f6f7726de0db19fba8dd081726c23c
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "7074"
    uid: 6f8347f4-1411-40be-a8c9-7800175e2a12
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:,%7B%0A%20%20%20%20%22default%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22insecureAcceptAnything%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%2C%0A%20%20%20%20%22transports%22%3A%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22docker-daemon%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%3A%20%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: d78f3bf23498ce7119fc712f124136a7482fa773
      machineconfiguration.openshift.io/release-image-version: 4.8.53
    creationTimestamp: "2022-11-29T15:28:33Z"
    generation: 1
    name: rendered-worker-9653b44a9dbd0acf2490073fe7e6d90a
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "1072779946"
    uid: b19a4fba-4d4d-4812-84b5-7b8fec774951
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A0bc95c9a9d52eb870744539490ece8394a1fb8e07bf775f393921c03f3470956%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A9b6774e15990c3ffa61724c4f0c4a0dc573367a70d53ecd64d8bed74e1b08720%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:text/plain,NODE_SIZING_ENABLED%3Dtrue%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m%0A
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A27545663aa804e4a153ec7bf40761a4151d1baff6c230825dce4da9647952d5a%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:text/plain,%7B%0A%20%20%22kind%22%3A%20%22KubeletConfiguration%22%2C%0A%20%20%22apiVersion%22%3A%20%22kubelet.config.k8s.io%2Fv1beta1%22%2C%0A%20%20%22staticPodPath%22%3A%20%22%2Fetc%2Fkubernetes%2Fmanifests%22%2C%0A%20%20%22syncFrequency%22%3A%20%220s%22%2C%0A%20%20%22fileCheckFrequency%22%3A%20%220s%22%2C%0A%20%20%22httpCheckFrequency%22%3A%20%220s%22%2C%0A%20%20%22tlsCipherSuites%22%3A%20%5B%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%22%2C%0A%20%20%20%20%22TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%22%2C%0A%20%20%20%20%22TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%22%0A%20%20%5D%2C%0A%20%20%22tlsMinVersion%22%3A%20%22VersionTLS12%22%2C%0A%20%20%22rotateCertificates%22%3A%20true%2C%0A%20%20%22serverTLSBootstrap%22%3A%20true%2C%0A%20%20%22authentication%22%3A%20%7B%0A%20%20%20%20%22x509%22%3A%20%7B%0A%20%20%20%20%20%20%22clientCAFile%22%3A%20%22%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22webhook%22%3A%20%7B%0A%20%20%20%20%20%20%22cacheTTL%22%3A%20%220s%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22anonymous%22%3A%20%7B%0A%20%20%20%20%20%20%22enabled%22%3A%20false%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%20%20%22authorization%22%3A%20%7B%0A%20%20%20%20%22webhook%22%3A%20%7B%0A%20%20%20%20%20%20%22cacheAuthorizedTTL%22%3A%20%220s%22%2C%0A%20%20%20%20%20%20%22cacheUnauthorizedTTL%22%3A%20%220s%22%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%20%20%22clusterDomain%22%3A%20%22cluster.local%22%2C%0A%20%20%22clusterDNS%22%3A%20%5B%0A%20%20%20%20%22172.30.0.10%22%0A%20%20%5D%2C%0A%20%20%22streamingConnectionIdleTimeout%22%3A%20%220s%22%2C%0A%20%20%22nodeStatusUpdateFrequency%22%3A%20%220s%22%2C%0A%20%20%22nodeStatusReportFrequency%22%3A%20%220s%22%2C%0A%20%20%22imageMinimumGCAge%22%3A%20%220s%22%2C%0A%20%20%22volumeStatsAggPeriod%22%3A%20%220s%22%2C%0A%20%20%22systemCgroups%22%3A%20%22%2Fsystem.slice%22%2C%0A%20%20%22cgroupRoot%22%3A%20%22%2F%22%2C%0A%20%20%22cgroupDriver%22%3A%20%22systemd%22%2C%0A%20%20%22cpuManagerReconcilePeriod%22%3A%20%220s%22%2C%0A%20%20%22runtimeRequestTimeout%22%3A%20%220s%22%2C%0A%20%20%22maxPods%22%3A%20250%2C%0A%20%20%22kubeAPIQPS%22%3A%2050%2C%0A%20%20%22kubeAPIBurst%22%3A%20100%2C%0A%20%20%22serializeImagePulls%22%3A%20false%2C%0A%20%20%22evictionPressureTransitionPeriod%22%3A%20%220s%22%2C%0A%20%20%22featureGates%22%3A%20%7B%0A%20%20%20%20%22APIPriorityAndFairness%22%3A%20true%2C%0A%20%20%20%20%22DownwardAPIHugePages%22%3A%20true%2C%0A%20%20%20%20%22LegacyNodeRoleBehavior%22%3A%20false%2C%0A%20%20%20%20%22NodeDisruptionExclusion%22%3A%20true%2C%0A%20%20%20%20%22RotateKubeletServerCertificate%22%3A%20true%2C%0A%20%20%20%20%22ServiceNodeExclusion%22%3A%20true%2C%0A%20%20%20%20%22SupportPodPidsLimit%22%3A%20true%0A%20%20%7D%2C%0A%20%20%22containerLogMaxSize%22%3A%20%2250Mi%22%2C%0A%20%20%22systemReserved%22%3A%20%7B%0A%20%20%20%20%22ephemeral-storage%22%3A%20%221Gi%22%0A%20%20%7D%2C%0A%20%20%22logging%22%3A%20%7B%7D%2C%0A%20%20%22shutdownGracePeriod%22%3A%20%220s%22%2C%0A%20%20%22shutdownGracePeriodCriticalPods%22%3A%20%220s%22%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:27545663aa804e4a153ec7bf40761a4151d1baff6c230825dce4da9647952d5a \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:17f74dc538a856192677a4ce0e1661ae721a23b3ba270db58f2b787082afb2f3'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:17f74dc538a856192677a4ce0e1661ae721a23b3ba270db58f2b787082afb2f3' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7643ee8fbd60574e184fa9db87a1097cb3493e7248165b630fd63969cb941f30 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:34669a57488b9f00441d86e640c3cd50d633360cdcb4424e82a217dea667c0a5
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 51dc0801ed7d705820f557fcabf04eff023bf568
    creationTimestamp: "2022-01-24T09:01:13Z"
    generation: 1
    name: rendered-worker-9aa6fb6fe791a29c6dd09aad0b081354
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "260927010"
    uid: 9ebe67ef-2fa5-486c-89c5-1dac57dc9af4
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A790915e54be36106bd8e7700780cee399be71569f83d6aee6747c6a0131eb749%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A35fb1fa332ccc62cd5d766cebd15a5851c350a8f0d3f0acc341941cab2a76e81%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:368cf0f18de7bedb78063afa5acd50945a8b70f0d3b9cb3dd814279bcf1bc311
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-07-15T08:05:09Z"
    generation: 1
    name: rendered-worker-9c4ff6c8c758386e92961bbfaaa87ed1
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "748802724"
    uid: 664d8db6-5a04-45df-8c0f-e958f24593e4
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 51dc0801ed7d705820f557fcabf04eff023bf568
    creationTimestamp: "2022-01-19T10:53:08Z"
    generation: 1
    name: rendered-worker-a462771b4b11fe27a6bc004bcfdc73ad
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "248597181"
    uid: c0a4f967-2719-475f-9345-638baaf671cd
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A790915e54be36106bd8e7700780cee399be71569f83d6aee6747c6a0131eb749%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A35fb1fa332ccc62cd5d766cebd15a5851c350a8f0d3f0acc341941cab2a76e81%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:40ab2b63c6a128fea987d21a43f5b3ab25c3d9a7b2ed7fd69b17fcf049070d67' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:368cf0f18de7bedb78063afa5acd50945a8b70f0d3b9cb3dd814279bcf1bc311
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 04bcf9c68926dc323eba73bd85cd22d13efafef7
    creationTimestamp: "2021-11-29T10:05:32Z"
    generation: 1
    name: rendered-worker-a99eacc6f7290bcfa2eb2ff02bd17777
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "119592044"
    uid: 5d1cc845-ddfa-4cd2-b610-c9b84ed884b0
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A790915e54be36106bd8e7700780cee399be71569f83d6aee6747c6a0131eb749%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%C2%A0%7C%20grep%20'ip%3A'%20%7C%20grep%20%7B%7B.NonVirtualIP%7D%7D%20%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A35fb1fa332ccc62cd5d766cebd15a5851c350a8f0d3f0acc341941cab2a76e81%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4ae919a68552d6ae04c761487126f96ed4b2decc86d42634759fea6faea65c1c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:78708497348d5cf12fc93920a83576018088e14320537d3210692470861fc1b8'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:78708497348d5cf12fc93920a83576018088e14320537d3210692470861fc1b8' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f998b92d725765d83af6ba713ef3fe9cfdc70e3ff9103f390529dd4818b3f19a \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:449a98d758fd50b69a40bdaee4747302f721f8b0ec8ebd47dd0cb7be7e1d0706
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-04-06T14:36:43Z"
    generation: 1
    name: rendered-worker-acebd6df0ea51d31974b8d82451c7114
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "458566554"
    uid: 7268e704-1ef9-4a07-9766-b81766baf065
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-06-07T08:04:44Z"
    generation: 1
    name: rendered-worker-ae231907cfa0b1c95072f0f2ab52cc79
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "642727215"
    uid: 689cc1f9-10e7-4e30-a635-76f502c4cf7d
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-07-18T13:33:32Z"
    generation: 1
    name: rendered-worker-b4c983f159ffe377680b25803353676d
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "756550361"
    uid: c243bd98-7abf-4408-b68e-2c3ab6ed3db3
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-06-07T08:04:38Z"
    generation: 1
    name: rendered-worker-c2d467146658b93fe962a8e6f3313ab6
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "642726948"
    uid: 9f1976b8-10f9-45d3-a0c5-71a82e5fc7a0
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-09-29T14:45:16Z"
    generation: 1
    name: rendered-worker-c3b3d9f18db02335a2a6711d670a7a92
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "931106541"
    uid: 99e3f82e-e75f-4725-b9ac-b2551f6fdd7f
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 3238e971006b3d9ba002122a767fa7654e86928f
      machineconfiguration.openshift.io/release-image-version: 4.8.35
    creationTimestamp: "2022-09-29T15:45:30Z"
    generation: 1
    name: rendered-worker-e9b0fd7e9a7f729ff34d1ab09f92517a
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "931213204"
    uid: e56b5c88-8777-4f10-9867-4d53c10c3f5d
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0AMANAGED_NM_CONN_FILES%3D(%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection))%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20src_path%3D%22%24NM_CONN_PATH%22%0A%20%20local%20dst_path%3D%22%24NM_CONN_UNDERLAY%22%0A%20%20if%20%5B%20%22%24src_path%22%20%3D%20%22%24dst_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22No%20need%20to%20persist%20configuration%20files%22%0A%20%20%20%20return%0A%20%20fi%0A%20%20if%20%5B%20-d%20%22%24src_path%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20files%2B%3D(%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24src_path%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20new%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Persisting%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20its%20status%20is%20current%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20local%20files%3D(%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22)%0A%20%20shopt%20-s%20nullglob%0A%20%20files%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%20%20for%20file%20in%20%22%24%7Bfiles%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20file%3D%22%24(basename%20%24file)%22%0A%20%20%20%20%23%20Also%20remove%20files%20in%20underlay%0A%20%20%20%20for%20path%20in%20%22%24%7BNM_CONN_PATH%7D%22%20%22%24%7BNM_CONN_UNDERLAY%7D%22%3B%20do%0A%20%20%20%20%20%20file_path%3D%22%24%7Bpath%7D%2F%24file%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24file_path%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24file_path%22%0A%20%20%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aecho%20%22Current%20routing%20and%20connection%20state%3A%22%0Aip%20route%20show%0Anmcli%20c%20show%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%20%20%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0A%20%20BRIDGE_METRIC%3D%2249%22%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuid%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20ovs-if-phys0)%0A%0A%20%20%23%20Setup%20an%20exit%20trap%20to%20restore%20any%20modifications%20going%20further%0A%20%20handle_exit_error()%20%7B%0A%20%20%20%20e%3D%24%3F%0A%20%20%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20exit%200%0A%20%20%20%20%23%20if%20there%20was%20a%20problem%20network%20isn't%20coming%20up%2C%20revert%20for%20debugging%0A%20%20%20%20set%20%2Be%0A%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20interface%20connection%20to%20be%20brought%20down%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20%20%20exit%20%24e%0A%20%20%7D%0A%20%20trap%20%22handle_exit_error%22%20EXIT%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20%23%20For%20some%20reason%20RHEL7%20requires%20the%20ovs%20bridge%20to%20be%20brought%20up%20explicitly%20whereas%20RHCOS%20does%20not%0A%20%20nmcli%20conn%20up%20br-ex%0A%20%20%23%20Bring%20up%20the%20new%20interface%20connection%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20%22%5Euuid%3D%24old_conn%22%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20%20%20old_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bold_conn%7D%22-clone*)%0A%20%20%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20%20%20if%20%5B%20%24%7B%23old_conn_files%5B%40%5D%7D%20-ne%201%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%20for%20%24%7Bold_conn%7D-clone%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20old_conn_file%3D%22%24%7Bold_conn_files%5B0%5D%7D%22%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20old_basename%3D%24(basename%20%22%24%7Bold_conn_file%7D%22%20.nmconnection)%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bold_conn_file%2F%24%7BNM_CONN_PATH%7D%5C%2F%24old_basename%2F%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex%7D%22%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%22%24%7Bold_conn_file%7D%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%22%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24BRIDGE_METRIC%22%20ipv6.route-metric%20%22%24BRIDGE_METRIC%22%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20nmcli%20c%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20fi%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20nmcli%20c%20reload%0A%20%20sleep%205%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-ex%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20OVN-Kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0A%0A%20%20%23%20In%20some%20cases%20the%20preferred%20connection%20profile%20is%20not%20auto-activated%0A%20%20%23%20(maybe%20due%20to%20differences%20in%20NM%20versions)%20so%20try%20to%20activate%20it%0A%20%20%23%20explicitly.%0A%20%20if%20%5B%20-n%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0A%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%20%20nmcli%20c%20show%0A%20%20ovs-vsctl%20show%0A%20%20ip%20route%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A38563bb998972782582f15708b9ac326e79618a1f7a98150b27df7d186558450%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aa059d515f189ce6e54d3529333556751a0d558fbd40fef7a3e579a5cf06ebf4a%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Aeed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ab2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.io%3A443%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09%24OpenBSD%3A%20sshd_config%2Cv%201.103%202018/04/09%2020%3A41%3A22%20tj%20Exp%20%24%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH%3D/usr/local/bin%3A/usr/bin%3A/usr/local/sbin%3A/usr/sbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20%3A%3A%0A%0AHostKey%20/etc/ssh/ssh_host_rsa_key%0AHostKey%20/etc/ssh/ssh_host_ecdsa_key%0AHostKey%20/etc/ssh/ssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy%3A%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY%3D%0A%23%20variable%20in%20%20/etc/sysconfig/sshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication%3A%0A%0A%23LoginGraceTime%202m%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh/authorized_keys%20and%20.ssh/authorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh/authorized_keys%0AAuthorizedKeysFile%09.ssh/authorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20/etc/ssh/ssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20%7E/.ssh/known_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20%7E/.rhosts%20and%20%7E/.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s/key%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING%3A%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20/etc/pam.d/sshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20600%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20/var/run/sshd.pid%0A%23MaxStartups%2010%3A30%3A100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20/etc/issue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09/usr/libexec/openssh/sftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a2256b30b0f9dbbcf74f8f0db4b4871bcb389aa4b63d68aaf519eb927172cd \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2b521d7ba9d305b4a505648f15a8b7a55a29a53c1115032260603a036028fa6b' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eed0eee13dc3c59638b819fa31fd3879f63394eee5837ce93d16e9a5a551577c \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8e3f03baa3a1f15cf2f1e45d75c0f124f05ce2e1f1fc2a90535b888bf7bf1412
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: c9fce5a27bb71642339085600b98a2e60341a6c2
    creationTimestamp: "2021-08-18T16:47:55Z"
    generation: 1
    name: rendered-worker-f607a76b1831da3f2c04dff79b28be1f
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "55938"
    uid: 86bfb9c8-e545-4d21-a666-26cbc775f446
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2Fsystem-connections-merged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/40-mdns-hostname
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20src_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20dst_path%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20if%20%5B%20-d%20%24src_path%20%5D%3B%20then%0A%20%20%20%20echo%20%22%24src_path%20exists%22%0A%20%20%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20%20%20fileList%3D%24(echo%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D%20%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection)%0A%20%20%20%20for%20file%20in%20%24%7BfileList%5B*%5D%7D%3B%20do%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%24dst_path%2F%24file%20%5D%20%26%26%20%5B%20-f%20%24src_path%2F%24file%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20cp%20%24src_path%2F%24file%20%24dst_path%2F%24file%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20exists%20in%20%24dst_path%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20done%0A%20%20fi%0A%7D%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20fi%0A%20%20%7D%0A%20%20if%20%5B%20-d%20%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%20%5D%3B%20then%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections-merged%22%0A%20%20else%0A%20%20%20%20NM_CONN_PATH%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0A%20%20fi%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20br-ex!%22%0A%20%20%20%20%23%20remove%20bridges%20created%20by%20openshift-sdn%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%20%20%20%20exit%200%0A%20%20fi%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20extra_brex_args%3D%22%22%0A%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20extra_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20fi%0A%0A%20%20%23%20create%20bridge%3B%20use%20NM's%20ethernet%20device%20default%20route%20metric%20(100)%0A%20%20if%20!%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-bridge%20%5C%0A%20%20%20%20%20%20%20%20con-name%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20conn.interface%20br-ex%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20ipv6.route-metric%20100%20%5C%0A%20%20%20%20%20%20%20%20%24%7Bextra_brex_args%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20br-ex%20con-name%20ovs-port-phys0%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20ovs-port%20conn.interface%20br-ex%20master%20br-ex%20con-name%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20extra_phys_args%3D%22%22%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D%22dev%20%24%7Bvlan_parent%7D%20id%20%24%7Bvlan_id%7D%22%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D%22bond.options%20%24%7Bbond_opts%7D%20%22%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20%23%20bring%20down%20any%20old%20iface%0A%20%20nmcli%20device%20disconnect%20%24iface%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20add%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20ovs-port-phys0%20con-name%20ovs-if-phys0%20%5C%0A%20%20%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%7D%0A%20%20fi%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20device%20name%0A%20%20new_device%3D%24(nmcli%20--get-values%20connection.interface-name%20conn%20show%20ovs-if-phys0)%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old_conn%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24%7Bconn_uuid%7D%20connection.master%20%24%7Bnew_device%7D%0A%20%20done%0A%0A%20%20nmcli%20conn%20up%20ovs-if-phys0%0A%0A%20%20if%20!%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20find%20and%20copy%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20if%20egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*%3B%20then%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24(egrep%20-l%20--include%3D*.nmconnection%20uuid%3D%24old_conn%20%24%7BNM_CONN_PATH%7D%2F*)%0A%20%20%20%20%20%20%20%20cloned%3Dfalse%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20unable%20to%20find%20NM%20configuration%20file%20for%20conn%3A%20%24%7Bold_conn%7D.%20Attempting%20to%20clone%20conn%22%0A%20%20%20%20%20%20%20%20old_conn_file%3D%24%7BNM_CONN_PATH%7D%2F%24%7Bold_conn%7D-clone.nmconnection%0A%20%20%20%20%20%20%20%20nmcli%20conn%20clone%20%24%7Bold_conn%7D%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20cloned%3Dtrue%0A%20%20%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24old_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20locate%20cloned%20conn%20file%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20echo%20%22Successfully%20cloned%20conn%20to%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20echo%20%22old%20connection%20file%20found%20at%3A%20%24%7Bold_conn_file%7D%22%0A%20%20%20%20%20%20new_conn_file%3D%24%7BNM_CONN_PATH%7D%2Fovs-if-br-ex.nmconnection%0A%20%20%20%20%20%20if%20%5B%20-f%20%22%24new_conn_file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22WARN%3A%20existing%20br-ex%20interface%20file%20found%3A%20%24new_conn_file%2C%20which%20is%20not%20loaded%20in%20NetworkManager...overwriting%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cp%20-f%20%24%7Bold_conn_file%7D%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20restorecon%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20%24cloned%3B%20then%0A%20%20%20%20%20%20%20%20nmcli%20conn%20delete%20%24%7Bold_conn%7D-clone%0A%20%20%20%20%20%20%20%20rm%20-f%20%24%7Bold_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20ovs_port_conn%3D%24(nmcli%20--fields%20connection.uuid%20conn%20show%20ovs-port-br-ex%20%7C%20awk%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20br_iface_uuid%3D%24(cat%20%2Fproc%2Fsys%2Fkernel%2Frandom%2Fuuid)%0A%20%20%20%20%20%20%23%20modify%20file%20to%20work%20with%20OVS%20and%20have%20unique%20settings%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Euuid%3D.*%24%2Fuuid%3D'%22%24br_iface_uuid%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Eid%3D.*%24%2Fid%3Dovs-if-br-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20if%20grep%20'interface-name%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Einterface-name%3D.*%24%2Finterface-name%3Dbr-ex%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20interface-name%3Dbr-ex'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20!%20grep%20'cloned-mac-address%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Ecloned-mac-address%3D.*%24%2Fcloned-mac-address%3D'%22%24iface_mac%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20cloned-mac-address%3D'%22%24iface_mac%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20if%20grep%20'mtu%3D'%20%24%7Bnew_conn_file%7D%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Emtu%3D.*%24%2Fmtu%3D'%22%24iface_mtu%22'%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bethernet%5C%5D%24%2Fa%20mtu%3D'%22%24iface_mtu%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20ovs-if-br-ex%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20nmcli%20c%20add%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20br-ex%20master%20ovs-port-br-ex%20con-name%20%5C%0A%20%20%20%20%20%20%20%20ovs-if-br-ex%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20100%20ipv6.route-metric%20100%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20%23%20wait%20for%20DHCP%20to%20finish%2C%20verify%20connection%20is%20up%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20sleep%205%0A%20%20%20%20%23%20check%20if%20connection%20is%20active%0A%20%20%20%20if%20nmcli%20--fields%20GENERAL.STATE%20conn%20show%20ovs-if-br-ex%20%7C%20grep%20-i%20%22activated%22%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22WARN%3A%20OVS%20did%20not%20succesfully%20activate%20NM%20connection.%20Attempting%20to%20bring%20up%20connections%22%0A%20%20counter%3D0%0A%20%20while%20%5B%20%24counter%20-lt%205%20%5D%3B%20do%0A%20%20%20%20if%20nmcli%20conn%20up%20ovs-if-br-ex%3B%20then%0A%20%20%20%20%20%20echo%20%22OVS%20successfully%20configured%22%0A%20%20%20%20%20%20copy_nm_conn_files%0A%20%20%20%20%20%20ip%20a%20show%20br-ex%0A%20%20%20%20%20%20ip%20route%20show%0A%20%20%20%20%20%20configure_driver_options%20%24%7Biface%7D%0A%20%20%20%20%20%20exit%200%0A%20%20%20%20fi%0A%20%20%20%20sleep%205%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20done%0A%0A%20%20echo%20%22ERROR%3A%20Failed%20to%20activate%20ovs-if-br-ex%20NM%20connection%22%0A%20%20%23%20if%20we%20made%20it%20here%20networking%20isnt%20coming%20up%2C%20revert%20for%20debugging%0A%20%20set%20%2Be%0A%20%20nmcli%20conn%20down%20ovs-if-br-ex%0A%20%20nmcli%20conn%20down%20ovs-if-phys0%0A%20%20nmcli%20conn%20up%20%24old_conn%0A%20%20exit%201%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh.%0A%20%20%23%20Remove%20OVS%20bridge%20%22br-ex%22.%20Use%20the%20default%20NIC%20for%20cluster%20network.%0A%20%20iface%3D%22%22%0A%20%20if%20nmcli%20connection%20show%20ovs-port-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20iface%3D%24(nmcli%20--get-values%20connection.interface-name%20connection%20show%20ovs-port-phys0)%0A%20%20%20%20nmcli%20c%20del%20ovs-port-phys0%20%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-phys0%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-phys0%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-port-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-port-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20ovs-if-br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20ovs-if-br-ex%0A%20%20fi%0A%0A%20%20if%20nmcli%20connection%20show%20br-ex%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20nmcli%20c%20del%20br-ex%0A%20%20fi%0A%0A%20%20rm%20-f%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%7Bbr-ex%2Covs-if-br-ex%2Covs-port-br-ex%2Covs-if-phys0%2Covs-port-phys0%7D.nmconnection%0A%20%20%23%20remove%20bridges%20created%20by%20ovn-kubernetes%2C%20try%20to%20delete%20br-ex%20again%20in%20case%20NM%20fail%20to%20talk%20to%20ovsdb%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%20--%20--if-exists%20del-br%20br-ex%0A%0A%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20nmcli%20device%20connect%20%24iface%0A%20%20fi%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20OverrideKernelCheck%20tells%20the%20driver%20to%20ignore%20kernel%20checks%20based%20on%20kernel%20version%0Aoverride_kernel_check%20%3D%20%22true%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2040%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7Brange%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bif%20ne%20%24nonVirtualIP%20.%7D%7D%7B%7B.%7D%7D%7B%7Bend%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/keepalived.yaml
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDQjCCAiqgAwIBAgIIAz%2FsixwzPnYwDQYJKoZIhvcNAQELBQAwPzESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSkwJwYDVQQDEyBrdWJlLWFwaXNlcnZlci10by1rdWJlbGV0%0ALXNpZ25lcjAeFw0yMTA4MTgxNTIzMThaFw0yMjA4MTgxNTIzMThaMD8xEjAQBgNV%0ABAsTCW9wZW5zaGlmdDEpMCcGA1UEAxMga3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxl%0AdC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpO7Gf%2Bhr1%0A4YNZH76RQqWWQ5QRrSYou44ED5tXF0gFCDIrHfwZVxJ0nML3DG%2FLm9Z%2BFtR2VLEQ%0AOpvZgppGAXTqX1LyRtS6FiMWpSX8hsvsUeV%2B12GEBDRtwj%2Fv5%2Fl89a6oGUFOOArt%0AQ6H3KZRYk7UpQx0fIAosS1bSol3EJwyDDaSl%2Bq84qvIempmDSSwX34bVZ2lhOSVj%0AvxALR6mKgp8LSrbnaECy84AMCkrJDyeuWJ2vOM%2FBTVyuc47Pe7cJenBF0oabKjcO%0Aw%2B5iu7JfsGjxpRpVvqMiiQ6J2NcIBZzYpVaf4w0xjT5D186b5Ay%2BFgCKimYMh9Eh%0AbrrrW0M4spIjAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTAD%0AAQH%2FMB0GA1UdDgQWBBS%2FZNFnwRcn9fS1f%2FpQum9xNH5jVTANBgkqhkiG9w0BAQsF%0AAAOCAQEAZdcORUjt8tWjtVuS4KcpZcKQkR2VJwThSFg8G4MEW6bF2lWDK7M4KDFS%0AQZBk%2FUJznu59mkp7qrqgnVyleijBZncxzaNHyrFkTwkVvyH9kP9KdsCAQaIByna7%0ArwqADPYeciBlO7yx3YD2I5pviB8fIi9%2BCwuW%2F1OPeUBR%2F%2F%2FB8Y%2FEXrmu5QgQ2mqE%0AebCxH3lVzuDdUSIBPGlG4dgWGmrAu%2FchbiZU9hEfb5YBMTKYE8ngXQjV9r3gv4sE%0AzuTXVxsK8LDsCMKg9%2BBx%2BclxK8UeMX62tMn0OthgfvznJ3Dcaz8TIfv2minIH5Nr%0Axt2XhtqeazAc7UTRun22HG%2B3gn%2BkKQ%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,bind_address%20%3D%20%22%7B%7B%20.NonVirtualIP%20%7D%7D%22%0Acollision_avoidance%20%3D%20%22hostname%22%0A%0Aservice%20%7B%0A%20%20%20%20name%20%3D%20%22%7B%7B%20.Cluster.Name%20%7D%7D%20Workstation%22%0A%20%20%20%20host_name%20%3D%20%22%7B%7B%20.ShortHostname%20%7D%7D.local.%22%0A%20%20%20%20type%20%3D%20%22_workstation._tcp%22%0A%20%20%20%20domain%20%3D%20%22local.%22%0A%20%20%20%20port%20%3D%2042424%0A%20%20%20%20ttl%20%3D%203200%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/mdns/config.hcl.tmpl
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/manifests/mdns-publisher.yaml
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2Fsystem-connections-merged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aconmon%20%3D%20%22%2Fusr%2Flibexec%2Fcrio%2Fconmon%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:,%7B%0A%20%20%20%20%22default%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22insecureAcceptAnything%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%2C%0A%20%20%20%20%22transports%22%3A%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22docker-daemon%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%3A%20%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20cpu%3A%20500m%0A%20%20memory%3A%201Gi%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20%23%20Will%20be%20removed%20in%20future%20openshift%2Fapi%20update%20https%3A%2F%2Fgithub.com%2Fopenshift%2Fapi%2Fcommit%2Fc8c8f6d0f4a8ac4ff4ad7d1a84b27e1aa7ebf9b4%0A%20%20RemoveSelfLink%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20SCTPSupport%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0AserverTLSBootstrap%3A%20true%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target crio.service
            After=network-online.target crio.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1a6958a56fc08af1cecee83ea48913465cc842254e7385452269deb415fa963c \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service crio-wipe.service
            Before=kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            Wants=network-online.target
            After=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e6900100683162ec74e96c643c5cf3049db22d4be4955acb9dfc2c9a131b6887' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/system-connections-merged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-system\x2dconnections\x2dmerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3521596717aa775194c525168604ebdc7f57a8fe12c197107fb06d4d5cdff3f2 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e15e6d949ecb750a8670f67065b659c40b815747929f73adbe0d64a202c4c833
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    annotations:
      machineconfiguration.openshift.io/generated-by-controller-version: 30c5add55bde21a400791b3601fff3cc41b0149d
      machineconfiguration.openshift.io/release-image-version: 4.8.51
    creationTimestamp: "2022-10-23T19:29:53Z"
    generation: 1
    name: rendered-worker-fbf1c3081fa7b87233f22f2c3c542c08
    ownerReferences:
    - apiVersion: machineconfiguration.openshift.io/v1
      blockOwnerDeletion: true
      controller: true
      kind: MachineConfigPool
      name: worker
      uid: cd6e0283-0b55-483f-a1e1-cc88360aefad
    resourceVersion: "988312497"
    uid: 4acd33db-9d24-4120-acd3-5d11b893a9d6
  spec:
    config:
      ignition:
        version: 3.2.0
      passwd:
        users:
        - name: core
          sshAuthorizedKeys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC311kTbKh6KRLElUPjVYVA3R23+613UOWu9jnn0J4d7jlLwXZGpcpvZGLw1QhNJ8GnOnDrJczXLZIvBtBHVGGAqEZQCB/SNUearcbV0LVBFmvGE6gxFXiKwlmT3CG2TCN7K9+CFnSmmZENBhAnX00rUSGlT3cBmpbmiQ5M8ypTekt2QBTzaqMDB4SQC4uXbaukm/uywEGh9M/ZoSzSOBntt0cOu79RVOwm2pJSWsbiQjdWvmKXdR3kg8+kjvPDULmbYbsFBY9YK32s/KVggmyYhGAS9Ze903QOsLMq7mGuYpBbKYXd/9WJugf1gscWHq2c8TA2gCSeVtSoTjN38fQ7Ql77A3isLi5jwI8ZALUAf+WCItn3rt9gdxtw7B5qK5FBFU/j+JzURKbHi8KMASAP/3htAzbq7pWWmMhW1USX415cmj+sZEU9JmxeVGZ9JnXUCNorCP9ghbuoU+wc+JeORFa+daHzeys8nASFIJystr82vQBfiBNoR4FTpCLWoM0XbAM8z1aW0vFcxywGjGjx7ZEIkG9Bopc90tiwUCldtrMyHc0k7XHGu25r1DR5rkHM02cqldKfP4yIq8Y7+oS/Ei4yVA6T0DOnRu00j7Zuxy5K+A+A4YKAA8JZ9B0Fei4REI/Uo7iPj0Ipo1m0EAy/uuHo4+FL8LGYUPPIlHGrZQ==
      storage:
        files:
        - contents:
            source: data:,%5Bmain%5D%0Aplugins%3Dkeyfile%2Cifcfg-rh%0A%5Bkeyfile%5D%0Apath%3D%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-keyfiles.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/99-vsphere.conf
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/30-resolv-prepender
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU%2FbWLiWnX1owDQYJKoZIhvcNAQELBQAw%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw%0AWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg%0ARW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQC7AhUozPaglNMPEuyNVZLD%2BILxmaZ6QoinXSaqtSu5xUyxr45r%2BXXIo9cP%0AR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH%2Bjdx%0AsxPnHKzhm%2B%2Fb5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm%0ANHz6a4uPVymZ%2BDAXXbpyb%2FuBxa3Shlg9F8fnCbvxK%2FeG3MHacV3URuPMrSXBiLxg%0AZ3Vms%2FEY96Jc5lP%2FOoi2R6X%2FExjqmAl3P51T%2Bc8B5fWmcBcUr2Ok%2F5mzk53cU6cG%0A%2FkiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC%0AAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYB%0AAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA%0AFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw%0AAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw%0AOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB%0Agt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W%0APTNlclQtgaDqw%2B34IL9fzLdwALduO%2FZelN7kIJ%2Bm74uyA%2BeitRY8kc607TkC53wl%0AikfmZW4%2FRvTZ8M6UK%2B5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz%0ACkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh%2BBIm%0AlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML%2BHbisq%2FyFOGwXD9RiX8F6sw6W4%0AavAuvDszue5L3sz85K%2BEC4Y%2FwFVDNvZo4TYXao6Z0f%2BlQKc0t8DQYzk1OXVu8rp2%0AyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O%0AyK5GhDDX8oVfGKF5u%2BdecIsH4YaTw7mP3GFxJSqv3%2B0lUFJoi5Lc5da149p90Ids%0AhCExroL1%2B7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0%2BL4WPlbuEjN%2FlxPFin%2B%0AHlUjr8gRsI3qfJOQFy%2F9rKIJR0Y%2F8Omwt%2F8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv%0AMldlTTKB3zhThV1%2BXWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX%0AnLRbwHOoq7hHwg%3D%3D%0A-----END%20CERTIFICATE-----%0A%0A-----BEGIN%20CERTIFICATE-----%0AMIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA%2F%0AMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT%0ADkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow%0ATzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh%0AcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB%0AAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe%2B3LffOJCMbjzmV6B493XC%0Aov71am72AE8o295ohmxEk7axY%2F0UEmu%2FH9LqMZshftEzPLpI9d1537O4%2FxLxIZpL%0AwYqGcWlKZmZsj348cL%2BtKSIG8%2BTA5oCu4kuPt5l%2BlAOf00eXfJlII1PoOK5PCm%2BD%0ALtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk%2FCjhFLfs8L6P%2B1dy70sntK%0A4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow%2FiaNhUd6shweU9GNx7C7ib1uYgeGJXDR5%0AbHbvO5BieebbpJovJsXQEOEO3tkQjhb7t%2Feo98flAgeYjzYIlefiN5YNNnWe%2Bw5y%0AsR2bvAP5SQXYgd0FtCrWQemsAXaVCg%2FY39W9Eh81LygXbNKYwagJZHduRze6zqxZ%0AXmidf3LWicUGQSk%2BWT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4%0AFQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc%0ASLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna%2FH2ql%0APRmP6zjzZN7IKw0KKP%2F32%2BIVQtQi0Cdd4Xn%2BGOdwiK1O5tmLOsbdJ1Fu%2F7xk9TND%0ATwIDAQABo4IBRjCCAUIwDwYDVR0TAQH%2FBAUwAwEB%2FzAOBgNVHQ8BAf8EBAMCAQYw%0ASwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1%0Ac3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx%0A%2BtvhS5B1%2F8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA%2FBgsrBgEEAYLfEwEB%0AATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu%0Ab3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E%0AU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu%0AMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7%2FDlLQrt2M51oGrS%2Bo44%2B%2FyQoDFVDC%0A5WxCu2%2Bb9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K%2FQosMrAdSW%0A9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx%2FJ3vWraV0T9VuG%0AWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O%0Ahe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE%2BFiYruq9RUWhiF1myv4Q6W%2BCyBFC%0ADfvp7OOGAN6dEOM4%2BqR9sdjoSYKEBpsr6GtPAQw4dy753ec5%0A-----END%20CERTIFICATE-----%0A
          mode: 384
          overwrite: true
          path: /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
        - contents:
            source: data:,%23%20This%20file%20is%20managed%20by%20machine-config-operator.%0A%23%20Suppress%20audit%20rules%20which%20always%20trigger%20for%20container%0A%23%20workloads%2C%20as%20they%20spam%20the%20audit%20log.%20%20Workloads%20are%20expected%0A%23%20to%20be%20dynamic%2C%20and%20the%20networking%20stack%20uses%20iptables.%0A-a%20exclude%2Calways%20-F%20msgtype%3DNETFILTER_CFG%0A%23%20The%20default%20bridged%20networking%20enables%20promiscuous%20on%20the%20veth%0A%23%20device.%20%20Ideally%2C%20we'd%20teach%20audit%20to%20ignore%20only%20veth%20devices%2C%0A%23%20since%20one%20might%20legitimately%20care%20about%20promiscuous%20on%20real%20physical%0A%23%20devices.%20%20But%20we%20can't%20currently%20differentiate.%0A-a%20exclude%2Calways%20-F%20msgtype%3DANOM_PROMISCUOUS%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/mco-audit-quiet-containers.rules
        - contents:
            source: data:,r%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F80-openshift-network.conf%0Ar%20%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F10-ovn-kubernetes.conf%0Ad%20%2Frun%2Fmultus%2Fcni%2Fnet.d%2F%200755%20root%20root%20-%20-%0AD%20%2Fvar%2Flib%2Fcni%2Fnetworks%2Fopenshift-sdn%2F%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/cleanup-cni.conf
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-eux%0A%0A%23%20This%20file%20is%20not%20needed%20anymore%20in%204.7%2B%2C%20but%20when%20rolling%20back%20to%204.6%0A%23%20the%20ovs%20pod%20needs%20it%20to%20know%20ovs%20is%20running%20on%20the%20host.%0Atouch%20%2Fvar%2Frun%2Fovs-config-executed%0A%0ANM_CONN_OVERLAY%3D%22%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%22%0ANM_CONN_UNDERLAY%3D%22%2Fetc%2FNetworkManager%2Fsystem-connections%22%0Aif%20%5B%20-d%20%22%24NM_CONN_OVERLAY%22%20%5D%3B%20then%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_OVERLAY%22%0Aelse%0A%20%20NM_CONN_PATH%3D%22%24NM_CONN_UNDERLAY%22%0Afi%0A%0A%23%20this%20flag%20tracks%20if%20any%20config%20change%20was%20made%0Anm_config_changed%3D0%0A%0AMANAGED_NM_CONN_SUFFIX%3D%22-slave-ovs-clone%22%0A%0A%23%20Workaround%20to%20ensure%20OVS%20is%20installed%20due%20to%20bug%20in%20systemd%20Requires%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1888017%0Acopy_nm_conn_files()%20%7B%0A%20%20local%20dst_path%3D%22%241%22%0A%20%20for%20src%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20src_path%3D%24(dirname%20%22%24src%22)%0A%20%20%20%20file%3D%24(basename%20%22%24src%22)%0A%20%20%20%20if%20%5B%20-f%20%22%24src_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20if%20%5B%20!%20-f%20%22%24dst_path%2F%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20elif%20!%20cmp%20--silent%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Copying%20updated%20configuration%20%24file%22%0A%20%20%20%20%20%20%20%20cp%20-f%20%22%24src_path%2F%24file%22%20%22%24dst_path%2F%24file%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it's%20equal%20at%20destination%22%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Skipping%20%24file%20since%20it%20does%20not%20exist%20at%20source%22%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0Apersist_nm_conn_files()%20%7B%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24NM_CONN_UNDERLAY%22%0A%7D%0A%0Aupdate_nm_conn_files()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%20%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%20%20%23%20In%20RHEL7%20files%20in%20%2F%7Betc%2Crun%7D%2FNetworkManager%2Fsystem-connections%20end%20without%20the%20suffix%20'.nmconnection'%2C%20whereas%20in%20RHCOS%20they%20end%20with%20the%20suffix.%0A%20%20MANAGED_NM_CONN_FILES%3D(%24(echo%20%22%24%7BNM_CONN_PATH%7D%22%2F%7B%22%24bridge_name%22%2C%22%24ovs_interface%22%2C%22%24ovs_port%22%2C%22%24bridge_interface_name%22%2C%22%24default_port_name%22%7D%7B%2C.nmconnection%7D))%0A%20%20shopt%20-s%20nullglob%0A%20%20MANAGED_NM_CONN_FILES%2B%3D(%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D.nmconnection%20%24%7BNM_CONN_PATH%7D%2F*%24%7BMANAGED_NM_CONN_SUFFIX%7D)%0A%20%20shopt%20-u%20nullglob%0A%7D%0A%0A%23%20Used%20to%20remove%20files%20managed%20by%20configure-ovs%0Arm_nm_conn_files()%20%7B%0A%20%20for%20file%20in%20%22%24%7BMANAGED_NM_CONN_FILES%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20if%20%5B%20-f%20%22%24file%22%20%5D%3B%20then%0A%20%20%20%20%20%20rm%20-f%20%22%24file%22%0A%20%20%20%20%20%20echo%20%22Removed%20nmconnection%20file%20%24file%22%0A%20%20%20%20%20%20nm_config_changed%3D1%0A%20%20%20%20fi%0A%20%20done%0A%7D%0A%0A%23%20Used%20to%20clone%20a%20slave%20connection%20by%20uuid%2C%20returns%20new%20uuid%0Aclone_slave_connection()%20%7B%0A%20%20local%20uuid%3D%22%241%22%0A%20%20local%20old_name%0A%20%20old_name%3D%22%24(nmcli%20-g%20connection.id%20connection%20show%20uuid%20%22%24uuid%22)%22%0A%20%20local%20new_name%3D%22%24%7Bold_name%7D%24%7BMANAGED_NM_CONN_SUFFIX%7D%22%0A%20%20if%20nmcli%20connection%20show%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20echo%20%22WARN%3A%20existing%20ovs%20slave%20%24%7Bnew_name%7D%20connection%20profile%20file%20found%2C%20overwriting...%22%20%3E%262%0A%20%20%20%20nmcli%20connection%20delete%20id%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20fi%0A%20%20nmcli%20connection%20clone%20%24uuid%20%22%24%7Bnew_name%7D%22%20%26%3E%20%2Fdev%2Fnull%0A%20%20nmcli%20-g%20connection.uuid%20connection%20show%20%22%24%7Bnew_name%7D%22%0A%7D%0A%0A%23%20Used%20to%20replace%20an%20old%20master%20connection%20uuid%20with%20a%20new%20one%20on%20all%20connections%0Areplace_connection_master()%20%7B%0A%20%20local%20old%3D%22%241%22%0A%20%20local%20new%3D%22%242%22%0A%20%20for%20conn_uuid%20in%20%24(nmcli%20-g%20UUID%20connection%20show%20--active)%20%3B%20do%0A%20%20%20%20if%20%5B%20%22%24(nmcli%20-g%20connection.master%20connection%20show%20uuid%20%22%24conn_uuid%22)%22%20!%3D%20%22%24old%22%20%5D%3B%20then%0A%20%20%20%20%20%20continue%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20make%20changes%20for%20slave%20profiles%20in%20a%20new%20clone%0A%20%20%20%20local%20new_uuid%0A%20%20%20%20new_uuid%3D%24(clone_slave_connection%20%24conn_uuid)%0A%0A%20%20%20%20nmcli%20conn%20mod%20uuid%20%24new_uuid%20connection.master%20%22%24new%22%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect-priority%20100%0A%20%20%20%20nmcli%20conn%20mod%20%24new_uuid%20connection.autoconnect%20no%0A%20%20%20%20echo%20%22Replaced%20master%20%24old%20with%20%24new%20for%20slave%20profile%20%24new_uuid%22%0A%20%20done%0A%7D%0A%0A%23%20when%20creating%20the%20bridge%2C%20we%20use%20a%20value%20lower%20than%20NM's%20ethernet%20device%20default%20route%20metric%0A%23%20(we%20pick%2049%20to%20be%20lower%20than%20anything%20that%20NM%20chooses%20by%20default)%0ABRIDGE_METRIC%3D%2249%22%0A%23%20Given%20an%20interface%2C%20generates%20NM%20configuration%20to%20add%20to%20an%20OVS%20bridge%0Aconvert_to_bridge()%20%7B%0A%20%20local%20iface%3D%24%7B1%7D%0A%20%20local%20bridge_name%3D%24%7B2%7D%0A%20%20local%20port_name%3D%24%7B3%7D%0A%20%20local%20bridge_metric%3D%24%7B4%7D%0A%20%20local%20ovs_port%3D%22ovs-port-%24%7Bbridge_name%7D%22%0A%20%20local%20ovs_interface%3D%22ovs-if-%24%7Bbridge_name%7D%22%0A%20%20local%20default_port_name%3D%22ovs-port-%24%7Bport_name%7D%22%20%23%20ovs-port-phys0%0A%20%20local%20bridge_interface_name%3D%22ovs-if-%24%7Bport_name%7D%22%20%23%20ovs-if-phys0%0A%0A%20%20if%20%5B%20%22%24iface%22%20%3D%20%22%24bridge_name%22%20%5D%3B%20then%0A%20%20%20%20%23%20handle%20vlans%20and%20bonds%20etc%20if%20they%20have%20already%20been%0A%20%20%20%20%23%20configured%20via%20nm%20key%20files%20and%20br-ex%20is%20already%20up%0A%20%20%20%20ifaces%3D%24(ovs-vsctl%20list-ifaces%20%24%7Biface%7D)%0A%20%20%20%20for%20intf%20in%20%24ifaces%3B%20do%20configure_driver_options%20%24intf%3B%20done%0A%20%20%20%20echo%20%22Networking%20already%20configured%20and%20up%20for%20%24%7Bbridge-name%7D!%22%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20flag%20to%20reload%20NM%20to%20account%20for%20all%20the%20configuration%20changes%0A%20%20%23%20going%20forward%0A%20%20nm_config_changed%3D1%0A%0A%20%20if%20%5B%20-z%20%22%24iface%22%20%5D%3B%20then%0A%20%20%20%20echo%20%22ERROR%3A%20Unable%20to%20find%20default%20gateway%20interface%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%20%20%23%20find%20the%20MAC%20from%20OVS%20config%20or%20the%20default%20interface%20to%20use%20for%20OVS%20internal%20port%0A%20%20%23%20this%20prevents%20us%20from%20getting%20a%20different%20DHCP%20lease%20and%20dropping%20connection%0A%20%20if%20!%20iface_mac%3D%24(%3C%22%2Fsys%2Fclass%2Fnet%2F%24%7Biface%7D%2Faddress%22)%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MAC%22%0A%20%20%20%20exit%201%0A%20%20fi%0A%0A%20%20echo%20%22MAC%20address%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mac%7D%22%0A%0A%20%20%23%20find%20MTU%20from%20original%20iface%0A%20%20iface_mtu%3D%24(ip%20link%20show%20%22%24iface%22%20%7C%20awk%20'%7Bprint%20%245%3B%20exit%7D')%0A%20%20if%20%5B%5B%20-z%20%22%24iface_mtu%22%20%5D%5D%3B%20then%0A%20%20%20%20echo%20%22Unable%20to%20determine%20default%20interface%20MTU%2C%20defaulting%20to%201500%22%0A%20%20%20%20iface_mtu%3D1500%0A%20%20else%0A%20%20%20%20echo%20%22MTU%20found%20for%20iface%3A%20%24%7Biface%7D%3A%20%24%7Biface_mtu%7D%22%0A%20%20fi%0A%0A%20%20%23%20store%20old%20conn%20for%20later%0A%20%20old_conn%3D%24(nmcli%20--fields%20UUID%2CDEVICE%20conn%20show%20--active%20%7C%20awk%20%22%2F%5Cs%24%7Biface%7D%5Cs*%5C%24%2F%20%7Bprint%20%5C%241%7D%22)%0A%0A%20%20%23%20create%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-bridge%20con-name%20%22%24bridge_name%22%20conn.interface%20%22%24bridge_name%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%0A%20%20fi%0A%0A%20%20%23%20find%20default%20port%20to%20add%20to%20bridge%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24default_port_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%24%7Biface%7D%20master%20%22%24bridge_name%22%20con-name%20%22%24default_port_name%22%0A%20%20fi%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_port%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-port%20%22%24bridge_name%22%20%22%24bridge_name%22%0A%20%20%20%20add_nm_conn%20type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24bridge_name%22%20con-name%20%22%24ovs_port%22%0A%20%20fi%0A%0A%20%20extra_phys_args%3D()%0A%20%20%23%20check%20if%20this%20interface%20is%20a%20vlan%2C%20bond%2C%20team%2C%20or%20ethernet%20type%0A%20%20if%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22vlan%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dvlan%0A%20%20%20%20vlan_id%3D%24(nmcli%20--get-values%20vlan.id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_id%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20vlan_parent%3D%24(nmcli%20--get-values%20vlan.parent%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-z%20%22%24vlan_parent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22ERROR%3A%20unable%20to%20determine%20vlan_parent%20for%20vlan%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20exit%201%0A%20%20%20%20fi%0A%20%20%20%20extra_phys_args%3D(%20dev%20%22%24%7Bvlan_parent%7D%22%20id%20%22%24%7Bvlan_id%7D%22%20)%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dbond%0A%20%20%20%20%23%20check%20bond%20options%0A%20%20%20%20bond_opts%3D%24(nmcli%20--get-values%20bond.options%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24bond_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20bond.options%20%22%24%7Bbond_opts%7D%22%20)%0A%20%20%20%20%20%20MODE_REGEX%3D%22(%5E%7C%2C)mode%3Dactive-backup(%2C%7C%24)%22%0A%20%20%20%20%20%20MAC_REGEX%3D%22(%5E%7C%2C)fail_over_mac%3D(1%7Cactive%7C2%7Cfollow)(%2C%7C%24)%22%0A%20%20%20%20%20%20if%20%5B%5B%20%24bond_opts%20%3D~%20%24MODE_REGEX%20%5D%5D%20%26%26%20%5B%5B%20%24bond_opts%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20elif%20%5B%20%24(nmcli%20--get-values%20connection.type%20conn%20show%20%24%7Bold_conn%7D)%20%3D%3D%20%22team%22%20%5D%3B%20then%0A%20%20%20%20iface_type%3Dteam%0A%20%20%20%20%23%20check%20team%20config%20options%0A%20%20%20%20team_config_opts%3D%24(nmcli%20--get-values%20team.config%20-e%20no%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20if%20%5B%20-n%20%22%24team_config_opts%22%20%5D%3B%20then%0A%20%20%20%20%20%20%23%20team.config%20is%20json%2C%20remove%20spaces%20to%20avoid%20problems%20later%20on%0A%20%20%20%20%20%20extra_phys_args%2B%3D(%20team.config%20%22%24%7Bteam_config_opts%2F%2F%5B%5B%3Aspace%3A%5D%5D%2F%7D%22%20)%0A%20%20%20%20%20%20team_mode%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.name%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20team_mac_policy%3D%24(echo%20%22%24%7Bteam_config_opts%7D%22%20%7C%20jq%20-r%20%22.runner.hwaddr_policy%20%2F%2F%20empty%22)%0A%20%20%20%20%20%20MAC_REGEX%3D%22(by_active%7Conly_active)%22%0A%20%20%20%20%20%20if%20%5B%20%22%24team_mode%22%20%3D%20%22activebackup%22%20%5D%20%26%26%20%5B%5B%20%22%24team_mac_policy%22%20%3D~%20%24MAC_REGEX%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%20%20clone_mac%3D0%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20else%0A%20%20%20%20iface_type%3D802-3-ethernet%0A%20%20fi%0A%0A%20%20if%20%5B%20!%20%22%24%7Bclone_mac%3A-%7D%22%20%3D%20%220%22%20%5D%3B%20then%0A%20%20%20%20%23%20In%20active-backup%20link%20aggregation%2C%20with%20fail_over_mac%20mode%20enabled%2C%0A%20%20%20%20%23%20cloning%20the%20mac%20address%20is%20not%20supported.%20It%20is%20possible%20then%20that%0A%20%20%20%20%23%20br-ex%20has%20a%20different%20mac%20address%20than%20the%20bond%20which%20might%20be%0A%20%20%20%20%23%20troublesome%20on%20some%20platforms%20where%20the%20nic%20won't%20accept%20packets%20with%0A%20%20%20%20%23%20a%20different%20destination%20mac.%20But%20nobody%20has%20complained%20so%20far%20so%20go%20on%0A%20%20%20%20%23%20with%20what%20we%20got.%20%0A%20%20%20%20%0A%20%20%20%20%23%20Do%20set%20it%20though%20for%20other%20link%20aggregation%20configurations%20where%20the%0A%20%20%20%20%23%20mac%20address%20would%20otherwise%20depend%20on%20enslave%20order%20for%20which%20we%20have%0A%20%20%20%20%23%20no%20control%20going%20forward.%0A%20%20%20%20extra_phys_args%2B%3D(%20802-3-ethernet.cloned-mac-address%20%22%24%7Biface_mac%7D%22%20)%0A%20%20fi%0A%0A%20%20%23%20use%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%20instead%20of%20%24%7Bextra_phys_args%5B%40%5D%7D%20to%20be%20compatible%20with%20bash%204.2%20in%20RHEL7.9%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24bridge_interface_name%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%24%7Biface%7D%0A%20%20%20%20add_nm_conn%20type%20%24%7Biface_type%7D%20conn.interface%20%24%7Biface%7D%20master%20%22%24default_port_name%22%20con-name%20%22%24bridge_interface_name%22%20%5C%0A%20%20%20%20connection.autoconnect-priority%20100%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20%24%7Bextra_phys_args%5B%40%5D%2B%22%24%7Bextra_phys_args%5B%40%5D%7D%22%7D%0A%20%20fi%0A%0A%20%20%23%20Get%20the%20new%20connection%20uuids%0A%20%20new_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24bridge_interface_name%22)%0A%20%20ovs_port_conn%3D%24(nmcli%20-g%20connection.uuid%20conn%20show%20%22%24ovs_port%22)%0A%0A%20%20%23%20Update%20connections%20with%20master%20property%20set%20to%20use%20the%20new%20connection%0A%20%20replace_connection_master%20%24old_conn%20%24new_conn%0A%20%20replace_connection_master%20%24iface%20%24new_conn%0A%0A%20%20if%20!%20nmcli%20connection%20show%20%22%24ovs_interface%22%20%26%3E%20%2Fdev%2Fnull%3B%20then%0A%20%20%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20destroy%20interface%20%22%24bridge_name%22%0A%20%20%20%20if%20nmcli%20--fields%20ipv4.method%2Cipv6.method%20conn%20show%20%24old_conn%20%7C%20grep%20manual%3B%20then%0A%20%20%20%20%20%20echo%20%22Static%20IP%20addressing%20detected%20on%20default%20gateway%20connection%3A%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%23%20clone%20the%20old%20connection%20to%20get%20the%20address%20settings%0A%20%20%20%20%20%20%23%20clone%20is%20better%20than%20file%20copy%20since%20the%20resulting%20file%20will%20inherit%20proper%0A%20%20%20%20%20%20%23%20NM%20selinux%20attributes%20vs%20using%20restorecon%20on%20systemConnectionsMerged%0A%20%20%20%20%20%20nmcli%20conn%20clone%20%22%24%7Bold_conn%7D%22%20%22%24%7Bovs_interface%7D%22%0A%20%20%20%20%20%20shopt%20-s%20nullglob%0A%20%20%20%20%20%20new_conn_files%3D(%24%7BNM_CONN_PATH%7D%2F%22%24%7Bovs_interface%7D%22*)%0A%20%20%20%20%20%20shopt%20-u%20nullglob%0A%20%20%20%20%20%20if%20%5B%20%24%7B%23new_conn_files%5B%40%5D%7D%20-ne%201%20%5D%20%7C%7C%20%5B%20!%20-f%20%22%24%7Bnew_conn_files%5B0%5D%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20could%20not%20find%20%24%7Bovs_interface%7D%20conn%20file%20after%20cloning%20from%20%24%7Bold_conn%7D%22%0A%20%20%20%20%20%20%20%20exit%201%0A%20%20%20%20%20%20fi%0A%20%20%20%20%20%20new_conn_file%3D%22%24%7Bnew_conn_files%5B0%5D%7D%22%0A%0A%20%20%20%20%20%20%23%20modify%20basic%20connection%20settings%2C%20some%20of%20which%20can't%20be%20modified%20through%20nmcli%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Emulti-connect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5Eautoconnect%3D.*%24%2Fd'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20autoconnect%3Dfalse'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2F%2C%2F%5E%5C%5B%2F%20s%2F%5Etype%3D.*%24%2Ftype%3Dovs-interface%2F'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20slave-type%3Dovs-port'%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20sed%20-i%20'%2F%5E%5C%5Bconnection%5C%5D%24%2Fa%20master%3D'%22%24ovs_port_conn%22%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20cat%20%3C%3CEOF%20%3E%3E%20%24%7Bnew_conn_file%7D%0A%5Bovs-interface%5D%0Atype%3Dinternal%0AEOF%0A%0A%20%20%20%20%20%20%23%20reload%20the%20connection%20and%20modify%20some%20more%20settings%20through%20nmcli%0A%20%20%20%20%20%20nmcli%20c%20load%20%24%7Bnew_conn_file%7D%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24%7Bovs_interface%7D%22%20conn.interface%20%22%24bridge_name%22%20%5C%0A%20%20%20%20%20%20%20%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%0A%20%20%20%20%20%20echo%20%22Loaded%20new%20%24ovs_interface%20connection%20file%3A%20%24%7Bnew_conn_file%7D%22%0A%20%20%20%20else%0A%20%20%20%20%20%20extra_if_brex_args%3D%22%22%0A%20%20%20%20%20%20%23%20check%20if%20interface%20had%20ipv4%2Fipv6%20addresses%20assigned%0A%20%20%20%20%20%20num_ipv4_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ipv4_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20IPV6%20should%20have%20at%20least%20a%20link%20local%20address.%20Check%20for%20more%20than%201%20to%20see%20if%20there%20is%20an%0A%20%20%20%20%20%20%23%20assigned%20address.%0A%20%20%20%20%20%20num_ip6_addrs%3D%24(ip%20-j%20a%20show%20dev%20%24%7Biface%7D%20%7C%20jq%20%22.%5B0%5D.addr_info%20%7C%20map(.%20%7C%20select(.family%20%3D%3D%20%5C%22inet6%5C%22%20and%20.scope%20!%3D%20%5C%22link%5C%22))%20%7C%20length%22)%0A%20%20%20%20%20%20if%20%5B%20%22%24num_ip6_addrs%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.may-fail%20no%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20%23%20check%20for%20dhcp%20client%20ids%0A%20%20%20%20%20%20dhcp_client_id%3D%24(nmcli%20--get-values%20ipv4.dhcp-client-id%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv4.dhcp-client-id%20%24%7Bdhcp_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20dhcp6_client_id%3D%24(nmcli%20--get-values%20ipv6.dhcp-duid%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24dhcp6_client_id%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.dhcp-duid%20%24%7Bdhcp6_client_id%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20ipv6_addr_gen_mode%3D%24(nmcli%20--get-values%20ipv6.addr-gen-mode%20conn%20show%20%24%7Bold_conn%7D)%0A%20%20%20%20%20%20if%20%5B%20-n%20%22%24ipv6_addr_gen_mode%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20extra_if_brex_args%2B%3D%22ipv6.addr-gen-mode%20%24%7Bipv6_addr_gen_mode%7D%20%22%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20add_nm_conn%20type%20ovs-interface%20slave-type%20ovs-port%20conn.interface%20%22%24bridge_name%22%20master%20%22%24ovs_port_conn%22%20con-name%20%5C%0A%20%20%20%20%20%20%20%20%22%24ovs_interface%22%20802-3-ethernet.mtu%20%24%7Biface_mtu%7D%20802-3-ethernet.cloned-mac-address%20%24%7Biface_mac%7D%20%5C%0A%20%20%20%20%20%20%20%20ipv4.route-metric%20%22%24%7Bbridge_metric%7D%22%20ipv6.route-metric%20%22%24%7Bbridge_metric%7D%22%20%24%7Bextra_if_brex_args%7D%0A%20%20%20%20fi%0A%20%20fi%0A%0A%20%20configure_driver_options%20%22%24%7Biface%7D%22%0A%7D%0A%0A%23%20Used%20to%20remove%20a%20bridge%0Aremove_ovn_bridges()%20%7B%0A%20%20bridge_name%3D%24%7B1%7D%0A%20%20port_name%3D%24%7B2%7D%0A%0A%20%20%23%20Reload%20configuration%2C%20after%20reload%20the%20preferred%20connection%20profile%0A%20%20%23%20should%20be%20auto-activated%0A%20%20update_nm_conn_files%20%24%7Bbridge_name%7D%20%24%7Bport_name%7D%0A%20%20rm_nm_conn_files%0A%0A%20%20%23%20NetworkManager%20will%20not%20remove%20br-ex%20if%20it%20has%20the%20patch%20port%20created%20by%20ovn-kubernetes%0A%20%20%23%20so%20remove%20explicitly%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20%24%7Bbridge_name%7D%0A%7D%0A%0A%23%20Removes%20any%20previous%20ovs%20configuration%0Aremove_all_ovn_bridges()%20%7B%0A%20%20echo%20%22Reverting%20any%20previous%20OVS%20configuration%22%0A%20%20%0A%20%20remove_ovn_bridges%20br-ex%20phys0%0A%20%20%0A%20%20echo%20%22OVS%20configuration%20successfully%20reverted%22%0A%7D%0A%0A%23%20Reloads%20NM%20NetworkManager%20profiles%20if%20any%20configuration%20change%20was%20done.%0A%23%20Accepts%20a%20list%20of%20devices%20that%20should%20be%20re-connect%20after%20reload.%0Areload_profiles_nm()%20%7B%0A%20%20if%20%5B%20%24nm_config_changed%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%23%20no%20config%20was%20changed%2C%20no%20need%20to%20reload%0A%20%20%20%20return%0A%20%20fi%0A%0A%20%20%23%20reload%20profiles%0A%20%20nmcli%20connection%20reload%0A%0A%20%20%23%20precautionary%20sleep%20of%2010s%20(default%20timeout%20of%20NM%20to%20bring%20down%20devices)%0A%20%20sleep%2010%0A%0A%20%20%23%20After%20reload%2C%20devices%20that%20were%20already%20connected%20should%20connect%20again%0A%20%20%23%20if%20any%20profile%20is%20available.%20If%20no%20profile%20is%20available%2C%20a%20device%20can%0A%20%20%23%20remain%20disconnected%20and%20we%20have%20to%20explicitly%20connect%20it%20so%20that%20a%0A%20%20%23%20profile%20is%20generated.%20This%20can%20happen%20for%20physical%20devices%20but%20should%0A%20%20%23%20not%20happen%20for%20software%20devices%20as%20those%20always%20require%20a%20profile.%0A%20%20for%20dev%20in%20%24%40%3B%20do%0A%20%20%20%20%23%20Only%20attempt%20to%20connect%20a%20disconnected%20device%0A%20%20%20%20local%20connected_state%3D%24(nmcli%20-g%20GENERAL.STATE%20device%20show%20%22%24dev%22%20%7C%7C%20echo%20%22%22)%0A%20%20%20%20if%20%5B%5B%20%22%24connected_state%22%20%3D~%20%22disconnected%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20%23%20keep%20track%20if%20a%20profile%20by%20the%20same%20name%20as%20the%20device%20existed%20%0A%20%20%20%20%20%20%23%20before%20we%20attempt%20activation%0A%20%20%20%20%20%20local%20named_profile_existed%3D%24(%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%5D%20%7C%7C%20%5B%20-f%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22%20%5D%20%26%26%20echo%20%22yes%22)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20connect%20device%20%24dev%22%0A%20%20%20%20%20%20%20%20%20%20nmcli%20device%20connect%20%22%24dev%22%20%26%26%20break%0A%20%20%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%0A%20%20%20%20%20%20%23%20if%20a%20profile%20did%20not%20exist%20before%20but%20does%20now%2C%20it%20was%20generated%0A%20%20%20%20%20%20%23%20but%20we%20want%20it%20to%20be%20ephemeral%2C%20so%20move%20it%20back%20to%20%2Frun%0A%20%20%20%20%20%20if%20%5B%20!%20%22%24named_profile_existed%22%20%3D%20%22yes%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20local%20dst%3D%22%2Frun%2FNetworkManager%2Fsystem-connections%2F%22%0A%20%20%20%20%20%20%20%20MANAGED_NM_CONN_FILES%3D(%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D%22%20%22%24%7BNM_CONN_PATH%7D%2F%24%7Bdev%7D.nmconnection%22)%0A%20%20%20%20%20%20%20%20copy_nm_conn_files%20%22%24%7Bdst%7D%22%0A%20%20%20%20%20%20%20%20rm_nm_conn_files%0A%20%20%20%20%20%20%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20might%20have%20been%20moved%0A%20%20%20%20%20%20%20%20nmcli%20connection%20reload%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20echo%20%22Waiting%20for%20interface%20%24dev%20to%20activate...%22%0A%20%20%20%20if%20!%20timeout%2060%20bash%20-c%20%22while%20!%20nmcli%20-g%20DEVICE%2CSTATE%20c%20%7C%20grep%20%22'%22'%22%24dev%22%3Aactivated'%22'%22%3B%20do%20sleep%205%3B%20done%22%3B%20then%0A%20%20%20%20%20%20echo%20%22Warning%3A%20%24dev%20did%20not%20activate%22%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20nm_config_changed%3D0%0A%7D%0A%0A%23%20Removes%20all%20configuration%20and%20reloads%20NM%20if%20necessary%0Arollback_nm()%20%7B%0A%20%20phys0%3D%24(get_bridge_physical_interface%20ovs-if-phys0)%0A%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20remove_all_ovn_bridges%0A%20%20%0A%20%20%23%20reload%20profiles%20so%20that%20NM%20notices%20that%20some%20were%20removed%0A%20%20reload_profiles_nm%20%22%24phys0%22%0A%7D%0A%0A%23%20Add%20a%20deactivated%20connection%20profile%0Aadd_nm_conn()%20%7B%0A%20%20nmcli%20c%20add%20%22%24%40%22%20connection.autoconnect%20no%0A%7D%0A%0A%23%20Activates%20an%20ordered%20set%20of%20NM%20connection%20profiles%0Aactivate_nm_connections()%20%7B%0A%20%20local%20connections%3D(%22%24%40%22)%0A%20%20%0A%20%20%23%20make%20sure%20to%20set%20bond%20or%20team%20slaves%20autoconnect%2C%20otherwise%20as%20we%0A%20%20%23%20activate%20one%20slave%2C%20the%20other%20slave%20might%20get%20implicitly%20re-activated%0A%20%20%23%20with%20the%20old%20profile%2C%20activating%20the%20old%20master%2C%20interfering%20and%0A%20%20%23%20causing%20the%20former%20activation%20to%20fail.%0A%20%20%23%20we%20don't%20want%20to%20set%20autoconnect%20on%20all%20the%20other%20profiles%20just%20yet%0A%20%20%23%20though%20as%20that%20would%20activate%20them%20which%20is%20what%20we%20want%20to%20do%20next.%0A%20%20%23%20note%20that%20these%20slaves%20should%20already%20be%20activated%20with%20their%20original%0A%20%20%23%20profiles%20and%20setting%20autoconnect%20won't%20implicitly%20activate%20them%20again.%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20slave_type%3D%24(nmcli%20-g%20connection.slave-type%20connection%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24slave_type%22%20%3D%20%22team%22%20%5D%20%7C%7C%20%5B%20%22%24slave_type%22%20%3D%20%22bond%22%20%5D%3B%20then%0A%20%20%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20%20%20fi%0A%20%20done%0A%0A%20%20%23%20Then%20activate%20all%20the%20connections%0A%20%20for%20conn%20in%20%22%24%7Bconnections%5B%40%5D%7D%22%3B%20do%0A%20%20%20%20local%20active_state%3D%24(nmcli%20-g%20GENERAL.STATE%20conn%20show%20%22%24conn%22)%0A%20%20%20%20if%20%5B%20%22%24active_state%22%20!%3D%20%22activated%22%20%5D%3B%20then%0A%20%20%20%20%20%20for%20i%20in%20%7B1..10%7D%3B%20do%0A%20%20%20%20%20%20%20%20echo%20%22Attempt%20%24i%20to%20bring%20up%20connection%20%24conn%22%0A%20%20%20%20%20%20%20%20nmcli%20conn%20up%20%22%24conn%22%20%26%26%20s%3D0%20%26%26%20break%20%7C%7C%20s%3D%24%3F%0A%20%20%20%20%20%20%20%20sleep%205%0A%20%20%20%20%20%20done%0A%20%20%20%20%20%20if%20%5B%20%24s%20-eq%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20echo%20%22Brought%20up%20connection%20%24conn%20successfully%22%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20echo%20%22ERROR%3A%20Cannot%20bring%20up%20connection%20%24conn%20after%20%24i%20attempts%22%0A%20%20%20%20%20%20%20%20return%20%24s%0A%20%20%20%20%20%20fi%0A%20%20%20%20else%0A%20%20%20%20%20%20echo%20%22Connection%20%24conn%20already%20activated%22%0A%20%20%20%20fi%0A%20%20%20%20nmcli%20c%20mod%20%22%24conn%22%20connection.autoconnect%20yes%0A%20%20done%0A%7D%0A%0A%23%20Accepts%20parameters%20%24bridge_interface%20(e.g.%20ovs-port-phys0)%0A%23%20Returns%20the%20physical%20interface%20name%20if%20%24bridge_interface%20exists%2C%20%22%22%20otherwise%0Aget_bridge_physical_interface()%20%7B%0A%20%20local%20bridge_interface%3D%22%241%22%0A%20%20local%20physical_interface%3D%22%22%0A%20%20physical_interface%3D%24(nmcli%20-g%20connection.interface-name%20conn%20show%20%22%24%7Bbridge_interface%7D%22%202%3E%2Fdev%2Fnull%20%7C%7C%20echo%20%22%22)%0A%20%20echo%20%22%24%7Bphysical_interface%7D%22%0A%7D%0A%0A%23%20Used%20to%20print%20network%20state%0Aprint_state()%20%7B%0A%20%20echo%20%22Current%20device%2C%20connection%2C%20interface%20and%20routing%20state%3A%22%0A%20%20nmcli%20-g%20all%20device%20%7C%20grep%20-v%20unmanaged%0A%20%20nmcli%20-g%20all%20connection%0A%20%20ip%20-d%20address%20show%0A%20%20ip%20route%20show%0A%20%20ip%20-6%20route%20show%0A%7D%0A%0A%23%20Setup%20an%20exit%20trap%20to%20rollback%20on%20error%0Ahandle_exit()%20%7B%0A%20%20e%3D%24%3F%0A%20%20%5B%20%24e%20-eq%200%20%5D%20%26%26%20print_state%20%26%26%20exit%200%0A%0A%20%20echo%20%22ERROR%3A%20configure-ovs%20exited%20with%20error%3A%20%24e%22%0A%20%20print_state%0A%0A%20%20%23%20copy%20configuration%20to%20tmp%0A%20%20dir%3D%24(mktemp%20-d%20-t%20%22configure-ovs-%24(date%20%2B%25Y-%25m-%25d-%25H-%25M-%25S)-XXXXXXXXXX%22)%0A%20%20update_nm_conn_files%20br-ex%20phys0%0A%20%20copy_nm_conn_files%20%22%24dir%22%0A%20%20echo%20%22Copied%20OVS%20configuration%20to%20%24dir%20for%20troubleshooting%22%0A%0A%20%20%23%20attempt%20to%20restore%20the%20previous%20network%20state%0A%20%20echo%20%22Attempting%20to%20restore%20previous%20configuration...%22%0A%20%20rollback_nm%0A%20%20print_state%0A%0A%20%20exit%20%24e%0A%7D%0Atrap%20%22handle_exit%22%20EXIT%0A%0Aif%20!%20rpm%20-qa%20%7C%20grep%20-q%20openvswitch%3B%20then%0A%20%20echo%20%22Warning%3A%20Openvswitch%20package%20is%20not%20installed!%22%0A%20%20exit%201%0Afi%0A%0A%23%20print%20initial%20state%0Aprint_state%0A%0Aif%20%5B%20%22%241%22%20%3D%3D%20%22OVNKubernetes%22%20%5D%3B%20then%0A%20%20%23%20Configures%20NICs%20onto%20OVS%20bridge%20%22br-ex%22%0A%20%20%23%20Configuration%20is%20either%20auto-detected%20or%20provided%20through%20a%20config%20file%20written%20already%20in%20Network%20Manager%0A%20%20%23%20key%20files%20under%20%2Fetc%2FNetworkManager%2Fsystem-connections%2F%0A%20%20%23%20Managing%20key%20files%20is%20outside%20of%20the%20scope%20of%20this%20script%0A%0A%20%20%23%20if%20the%20interface%20is%20of%20type%20vmxnet3%20add%20multicast%20capability%20for%20that%20driver%0A%20%20%23%20REMOVEME%3A%20Once%20BZ%3A1854355%20is%20fixed%2C%20this%20needs%20to%20get%20removed.%0A%20%20function%20configure_driver_options%20%7B%0A%20%20%20%20intf%3D%241%0A%20%20%20%20if%20%5B%20!%20-f%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22Device%20file%20doesn't%20exist%2C%20skipping%20setting%20multicast%20mode%22%0A%20%20%20%20else%0A%20%20%20%20%20%20driver%3D%24(cat%20%22%2Fsys%2Fclass%2Fnet%2F%24%7Bintf%7D%2Fdevice%2Fuevent%22%20%7C%20grep%20DRIVER%20%7C%20awk%20-F%20%22%3D%22%20'%7Bprint%20%242%7D')%0A%20%20%20%20%20%20echo%20%22Driver%20name%20is%22%20%24driver%0A%20%20%20%20%20%20if%20%5B%20%22%24driver%22%20%3D%20%22vmxnet3%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20ifconfig%20%22%24intf%22%20allmulti%0A%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%20%20%7D%0A%0A%20%20iface%3D%22%22%0A%20%20counter%3D0%0A%20%20%23%20find%20default%20interface%0A%20%20while%20%5B%20%24counter%20-lt%2012%20%5D%3B%20do%0A%20%20%20%20%23%20check%20ipv4%0A%20%20%20%20iface%3D%24(ip%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv4%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20%23%20check%20ipv6%0A%20%20%20%20iface%3D%24(ip%20-6%20route%20show%20default%20%7C%20awk%20'%7B%20if%20(%244%20%3D%3D%20%22dev%22)%20%7B%20print%20%245%3B%20exit%20%7D%20%7D')%0A%20%20%20%20if%20%5B%5B%20-n%20%22%24iface%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20echo%20%22IPv6%20Default%20gateway%20interface%20found%3A%20%24%7Biface%7D%22%0A%20%20%20%20%20%20break%0A%20%20%20%20fi%0A%20%20%20%20counter%3D%24((counter%2B1))%0A%20%20%20%20echo%20%22No%20default%20route%20found%20on%20attempt%3A%20%24%7Bcounter%7D%22%0A%20%20%20%20sleep%205%0A%20%20done%0A%0A%20%20if%20%5B%20%22%24iface%22%20!%3D%20%22br-ex%22%20%5D%3B%20then%0A%20%20%20%20%23%20Default%20gateway%20is%20not%20br-ex.%0A%20%20%20%20echo%20%22Bridge%20br-ex%20is%20not%20active%2C%20restoring%20previous%20configuration%20before%20proceeding...%22%0A%20%20%20%20rollback_nm%0A%20%20%20%20print_state%0A%20%20fi%0A%0A%20%20convert_to_bridge%20%22%24iface%22%20%22br-ex%22%20%22phys0%22%20%22%24%7BBRIDGE_METRIC%7D%22%0A%0A%20%20%23%20Remove%20bridges%20created%20by%20openshift-sdn%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br0%0A%0A%20%20%23%20Make%20sure%20everything%20is%20activated%0A%20%20connections%3D()%0A%20%20while%20IFS%3D%20read%20-r%20connection%3B%20do%0A%20%20%20%20if%20%5B%5B%20%24connection%20%3D%3D%20*%22%24MANAGED_NM_CONN_SUFFIX%22%20%5D%5D%3B%20then%0A%20%20%20%20%20%20connections%2B%3D(%22%24connection%22)%0A%20%20%20%20fi%0A%20%20done%20%3C%20%3C(nmcli%20-g%20NAME%20c)%0A%20%20connections%2B%3D(ovs-if-phys0%20ovs-if-br-ex)%0A%20%20activate_nm_connections%20%22%24%7Bconnections%5B%40%5D%7D%22%0A%20%20persist_nm_conn_files%0Aelif%20%5B%20%22%241%22%20%3D%3D%20%22OpenShiftSDN%22%20%5D%3B%20then%0A%20%20%23%20Revert%20changes%20made%20by%20%2Fusr%2Flocal%2Fbin%2Fconfigure-ovs.sh%20during%20SDN%20migration.%0A%20%20rollback_nm%0A%20%20%0A%20%20%23%20Remove%20bridges%20created%20by%20ovn-kubernetes%0A%20%20ovs-vsctl%20--timeout%3D30%20--if-exists%20del-br%20br-int%20--%20--if-exists%20del-br%20br-local%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/configure-ovs.sh
        - contents:
            source: data:,%23%20This%20file%20is%20generated%20by%20the%20Machine%20Config%20Operator's%20containerruntimeconfig%20controller.%0A%23%0A%23%20storage.conf%20is%20the%20configuration%20file%20for%20all%20tools%0A%23%20that%20share%20the%20containers%2Fstorage%20libraries%0A%23%20See%20man%205%20containers-storage.conf%20for%20more%20information%0A%23%20The%20%22container%20storage%22%20table%20contains%20all%20of%20the%20server%20options.%0A%5Bstorage%5D%0A%0A%23%20Default%20Storage%20Driver%0Adriver%20%3D%20%22overlay%22%0A%0A%23%20Temporary%20storage%20location%0Arunroot%20%3D%20%22%2Fvar%2Frun%2Fcontainers%2Fstorage%22%0A%0A%23%20Primary%20Read%2FWrite%20location%20of%20container%20storage%0Agraphroot%20%3D%20%22%2Fvar%2Flib%2Fcontainers%2Fstorage%22%0A%0A%5Bstorage.options%5D%0A%23%20Storage%20options%20to%20be%20passed%20to%20underlying%20storage%20drivers%0A%0A%23%20AdditionalImageStores%20is%20used%20to%20pass%20paths%20to%20additional%20Read%2FOnly%20image%20stores%0A%23%20Must%20be%20comma%20separated%20list.%0Aadditionalimagestores%20%3D%20%5B%0A%5D%0A%0A%23%20Size%20is%20used%20to%20set%20a%20maximum%20size%20of%20the%20container%20image.%20%20Only%20supported%20by%0A%23%20certain%20container%20storage%20drivers.%0Asize%20%3D%20%22%22%0A%0A%23%20Remap-UIDs%2FGIDs%20is%20the%20mapping%20from%20UIDs%2FGIDs%20as%20they%20should%20appear%20inside%20of%0A%23%20a%20container%2C%20to%20UIDs%2FGIDs%20as%20they%20should%20appear%20outside%20of%20the%20container%2C%20and%0A%23%20the%20length%20of%20the%20range%20of%20UIDs%2FGIDs.%20%20Additional%20mapped%20sets%20can%20be%20listed%0A%23%20and%20will%20be%20heeded%20by%20libraries%2C%20but%20there%20are%20limits%20to%20the%20number%20of%0A%23%20mappings%20which%20the%20kernel%20will%20allow%20when%20you%20later%20attempt%20to%20run%20a%0A%23%20container.%0A%23%0A%23%20remap-uids%20%3D%200%3A1668442479%3A65536%0A%23%20remap-gids%20%3D%200%3A1668442479%3A65536%0A%0A%23%20Remap-User%2FGroup%20is%20a%20name%20which%20can%20be%20used%20to%20look%20up%20one%20or%20more%20UID%2FGID%0A%23%20ranges%20in%20the%20%2Fetc%2Fsubuid%20or%20%2Fetc%2Fsubgid%20file.%20%20Mappings%20are%20set%20up%20starting%0A%23%20with%20an%20in-container%20ID%20of%200%20and%20the%20a%20host-level%20ID%20taken%20from%20the%20lowest%0A%23%20range%20that%20matches%20the%20specified%20name%2C%20and%20using%20the%20length%20of%20that%20range.%0A%23%20Additional%20ranges%20are%20then%20assigned%2C%20using%20the%20ranges%20which%20specify%20the%0A%23%20lowest%20host-level%20IDs%20first%2C%20to%20the%20lowest%20not-yet-mapped%20container-level%20ID%2C%0A%23%20until%20all%20of%20the%20entries%20have%20been%20used%20for%20maps.%0A%23%0A%23%20remap-user%20%3D%20%22storage%22%0A%23%20remap-group%20%3D%20%22storage%22%0A%0A%5Bstorage.options.thinpool%5D%0A%23%20Storage%20Options%20for%20thinpool%0A%0A%23%20autoextend_percent%20determines%20the%20amount%20by%20which%20pool%20needs%20to%20be%0A%23%20grown.%20This%20is%20specified%20in%20terms%20of%20%25%20of%20pool%20size.%20So%20a%20value%20of%2020%20means%0A%23%20that%20when%20threshold%20is%20hit%2C%20pool%20will%20be%20grown%20by%2020%25%20of%20existing%0A%23%20pool%20size.%0A%23%20autoextend_percent%20%3D%20%2220%22%0A%0A%23%20autoextend_threshold%20determines%20the%20pool%20extension%20threshold%20in%20terms%0A%23%20of%20percentage%20of%20pool%20size.%20For%20example%2C%20if%20threshold%20is%2060%2C%20that%20means%20when%0A%23%20pool%20is%2060%25%20full%2C%20threshold%20has%20been%20hit.%0A%23%20autoextend_threshold%20%3D%20%2280%22%0A%0A%23%20basesize%20specifies%20the%20size%20to%20use%20when%20creating%20the%20base%20device%2C%20which%0A%23%20limits%20the%20size%20of%20images%20and%20containers.%0A%23%20basesize%20%3D%20%2210G%22%0A%0A%23%20blocksize%20specifies%20a%20custom%20blocksize%20to%20use%20for%20the%20thin%20pool.%0A%23%20blocksize%3D%2264k%22%0A%0A%23%20directlvm_device%20specifies%20a%20custom%20block%20storage%20device%20to%20use%20for%20the%0A%23%20thin%20pool.%20Required%20if%20you%20setup%20devicemapper%0A%23%20directlvm_device%20%3D%20%22%22%0A%0A%23%20directlvm_device_force%20wipes%20device%20even%20if%20device%20already%20has%20a%20filesystem%0A%23%20directlvm_device_force%20%3D%20%22True%22%0A%0A%23%20fs%20specifies%20the%20filesystem%20type%20to%20use%20for%20the%20base%20device.%0A%23%20fs%3D%22xfs%22%0A%0A%23%20log_level%20sets%20the%20log%20level%20of%20devicemapper.%0A%23%200%3A%20LogLevelSuppress%200%20(Default)%0A%23%202%3A%20LogLevelFatal%0A%23%203%3A%20LogLevelErr%0A%23%204%3A%20LogLevelWarn%0A%23%205%3A%20LogLevelNotice%0A%23%206%3A%20LogLevelInfo%0A%23%207%3A%20LogLevelDebug%0A%23%20log_level%20%3D%20%227%22%0A%0A%23%20min_free_space%20specifies%20the%20min%20free%20space%20percent%20in%20a%20thin%20pool%20require%20for%0A%23%20new%20device%20creation%20to%20succeed.%20Valid%20values%20are%20from%200%25%20-%2099%25.%0A%23%20Value%200%25%20disables%0A%23%20min_free_space%20%3D%20%2210%25%22%0A%0A%23%20mkfsarg%20specifies%20extra%20mkfs%20arguments%20to%20be%20used%20when%20creating%20the%20base%0A%23%20device.%0A%23%20mkfsarg%20%3D%20%22%22%0A%0A%23%20mountopt%20specifies%20extra%20mount%20options%20used%20when%20mounting%20the%20thin%20devices.%0A%23%20mountopt%20%3D%20%22%22%0A%0A%23%20use_deferred_removal%20Marking%20device%20for%20deferred%20removal%0A%23%20use_deferred_removal%20%3D%20%22True%22%0A%0A%23%20use_deferred_deletion%20Marking%20device%20for%20deferred%20deletion%0A%23%20use_deferred_deletion%20%3D%20%22True%22%0A%0A%23%20xfs_nospace_max_retries%20specifies%20the%20maximum%20number%20of%20retries%20XFS%20should%0A%23%20attempt%20to%20complete%20IO%20when%20ENOSPC%20(no%20space)%20error%20is%20returned%20by%0A%23%20underlying%20storage%20device.%0A%23%20xfs_nospace_max_retries%20%3D%20%220%22%0A
          mode: 420
          overwrite: true
          path: /etc/containers/storage.conf
        - contents:
            source: data:,.%20%7B%0A%20%20%20%20errors%0A%20%20%20%20bufsize%20512%0A%20%20%20%20health%20%3A18080%0A%20%20%20%20forward%20.%20%7B%7B-%20range%20%24upstream%20%3A%3D%20.DNSUpstreams%7D%7D%20%7B%7B%24upstream%7D%7D%7B%7B-%20end%7D%7D%20%7B%0A%20%20%20%20%20%20%20%20policy%20sequential%0A%20%20%20%20%7D%0A%20%20%20%20cache%2030%0A%20%20%20%20reload%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.IngressVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20.*.apps.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPRecordType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20answer%20%22%7B%7B%22%7B%7B%20.Name%20%7D%7D%22%7D%7D%2060%20in%20%7B%7B%22%7B%7B%20.Type%20%7D%7D%22%7D%7D%20%3Cno%20value%3E%22%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20template%20IN%20%7B%7B%20.Cluster.APIVIPEmptyType%20%7D%7D%20atl-prd-ocp-02.cl.sec.ibm.com%20%7B%0A%20%20%20%20%20%20%20%20match%20api-int.atl-prd-ocp-02.cl.sec.ibm.com%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%20%20%20%20hosts%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.Cluster.NodeAddresses%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B%20.Address%20%7D%7D%20%7B%7B%20.Name%20%7D%7D%20%7B%7B%20.Name%20%7D%7D.%7B%7B%20%24.Cluster.Name%20%7D%7D.%7B%7B%20%24.Cluster.Domain%20%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%20%7D%7D%0A%20%20%20%20%20%20%20%20fallthrough%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/coredns/Corefile.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20coredns%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-mdns%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fcoredns%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-coredns%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20coredns%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Af2242ac066837802e21f932ed20f0405b96c74c95c89380e389668ffcc777280%0A%20%20%20%20args%3A%0A%20%20%20%20-%20%22--conf%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20httpGet%3A%0A%20%20%20%20%20%20%20%20path%3A%20%2Fhealth%0A%20%20%20%20%20%20%20%20port%3A%2018080%0A%20%20%20%20%20%20%20%20scheme%3A%20HTTP%0A%20%20%20%20%20%20initialDelaySeconds%3A%2060%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20%20%20successThreshold%3A%201%0A%20%20%20%20%20%20failureThreshold%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20coredns-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20corednsmonitor%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2FCorefile.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fcoredns%2FCorefile%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fcoredns%22%0A%20%20%20%20-%20name%3A%20nm-resolv%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2FNetworkManager%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%20%20%20%20%20%20%20%20%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/coredns.yaml
        - contents:
            source: data:,%23%20Proxy%20environment%20variables%20will%20be%20populated%20in%20this%20file.%20Properly%0A%23%20url%20encoded%20passwords%20with%20special%20characters%20will%20use%20'%25%3CHEX%3E%3CHEX%3E'.%0A%23%20Systemd%20requires%20that%20any%20%25%20used%20in%20a%20password%20be%20represented%20as%0A%23%20%25%25%20in%20a%20unit%20file%20since%20%25%20is%20a%20prefix%20for%20macros%3B%20this%20restriction%20does%20not%0A%23%20apply%20for%20environment%20files.%20Templates%20that%20need%20the%20proxy%20set%20should%20use%0A%23%20'EnvironmentFile%3D%2Fetc%2Fmco%2Fproxy.env'.%0A
          mode: 420
          overwrite: true
          path: /etc/mco/proxy.env
        - contents:
            source: data:,
          mode: 420
          overwrite: true
          path: /etc/systemd/system/crio.service.d/20-stream-address.conf
        - contents:
            source: data:,%5BManager%5D%0ADefaultEnvironment%3DGODEBUG%3Dx509ignoreCN%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/10-default-env-godebug.conf
        - contents:
            source: data:,%23%20Force-load%20legacy%20iptables%20so%20it%20is%20usable%20from%20pod%20network%20namespaces%0Aip_tables%0A
          mode: 420
          overwrite: true
          path: /etc/modules-load.d/iptables.conf
        - contents:
            source: data:,global_defs%20%7B%0A%20%20%20%20enable_script_security%0A%20%20%20%20script_user%20root%0A%20%20%20%20max_auto_priority%20-1%0A%20%20%20%20vrrp_garp_master_refresh%2060%0A%7D%0A%0A%23%20TODO%3A%20Improve%20this%20check.%20The%20port%20is%20assumed%20to%20be%20alive.%0A%23%20Need%20to%20assess%20what%20is%20the%20ramification%20if%20the%20port%20is%20not%20there.%0Avrrp_script%20chk_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%200.9%20%2Fusr%2Fbin%2Fcurl%20-o%20%2Fdev%2Fnull%20-Lfs%20http%3A%2F%2Flocalhost%3A1936%2Fhealthz%2Fready%22%0A%20%20%20%20interval%201%0A%20%20%20%20weight%2020%0A%7D%0A%0Avrrp_script%20chk_default_ingress%20%7B%0A%20%20%20%20script%20%22%2Fusr%2Fbin%2Ftimeout%204.9%20%2Fetc%2Fkeepalived%2Fchk_default_ingress.sh%22%0A%20%20%20%20interval%205%0A%20%20%20%20weight%2050%0A%7D%0A%0A%7B%7B%24nonVirtualIP%20%3A%3D%20.NonVirtualIP%7D%7D%0A%0Avrrp_instance%20%7B%7B%20.Cluster.Name%20%7D%7D_INGRESS%20%7B%0A%20%20%20%20state%20BACKUP%0A%20%20%20%20interface%20%7B%7B%20.VRRPInterface%20%7D%7D%0A%20%20%20%20virtual_router_id%20%7B%7B%20.Cluster.IngressVirtualRouterID%20%7D%7D%0A%20%20%20%20priority%2020%0A%20%20%20%20advert_int%201%0A%20%20%20%20%7B%7Bif%20.EnableUnicast%7D%7D%0A%20%20%20%20unicast_src_ip%20%7B%7B.NonVirtualIP%7D%7D%0A%20%20%20%20unicast_peer%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B-%20range%20.IngressConfig.Peers%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20if%20ne%20%24nonVirtualIP%20.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B.%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%20%20%20%20%7B%7B-%20end%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7B%7Bend%7D%7D%0A%20%20%20%20authentication%20%7B%0A%20%20%20%20%20%20%20%20auth_type%20PASS%0A%20%20%20%20%20%20%20%20auth_pass%20%7B%7B%20.Cluster.Name%20%7D%7D_ingress_vip%0A%20%20%20%20%7D%0A%20%20%20%20virtual_ipaddress%20%7B%0A%20%20%20%20%20%20%20%20%7B%7B%20.Cluster.IngressVIP%20%7D%7D%2F%7B%7B%20.Cluster.VIPNetmask%20%7D%7D%0A%20%20%20%20%7D%0A%20%20%20%20track_script%20%7B%0A%20%20%20%20%20%20%20%20chk_ingress%0A%20%20%20%20%20%20%20%20chk_default_ingress%0A%20%20%20%20%7D%0A%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/keepalived.conf.tmpl
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%2Fhost%2Fbin%2Foc%20--kubeconfig%20%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%20get%20ep%20-n%20openshift-ingress%20router-internal-default%20-o%20yaml%20%7C%20grep%20'ip%3A'%20%7C%20grep%20-q%20%7B%7B.NonVirtualIP%7D%7D%0A
          mode: 493
          overwrite: true
          path: /etc/kubernetes/static-pod-resources/keepalived/scripts/chk_default_ingress.sh.tmpl
        - contents:
            source: data:,kind%3A%20Pod%0AapiVersion%3A%20v1%0Ametadata%3A%0A%20%20name%3A%20keepalived%0A%20%20namespace%3A%20openshift-vsphere-infra%0A%20%20creationTimestamp%3A%0A%20%20deletionGracePeriodSeconds%3A%2065%0A%20%20labels%3A%0A%20%20%20%20app%3A%20vsphere-infra-vrrp%0Aspec%3A%0A%20%20volumes%3A%0A%20%20-%20name%3A%20resource-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%22%0A%20%20-%20name%3A%20script-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%2Fstatic-pod-resources%2Fkeepalived%2Fscripts%22%0A%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20-%20name%3A%20conf-dir%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20-%20name%3A%20run-dir%0A%20%20%20%20empty-dir%3A%20%7B%7D%0A%20%20-%20name%3A%20chroot-host%0A%20%20%20%20hostPath%3A%0A%20%20%20%20%20%20path%3A%20%22%2F%22%0A%20%20initContainers%3A%0A%20%20-%20name%3A%20render-config-keepalived%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20command%3A%0A%20%20%20%20-%20runtimecfg%0A%20%20%20%20-%20render%0A%20%20%20%20-%20%22%2Fetc%2Fkubernetes%2Fkubeconfig%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22%2Fconfig%22%0A%20%20%20%20-%20%22--out-dir%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20resources%3A%20%7B%7D%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20kubeconfig%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkubernetes%22%0A%20%20%20%20-%20name%3A%20script-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20containers%3A%0A%20%20-%20name%3A%20keepalived%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ae522ba71bc0ce977870017ab9f7ec2fb60df0bd37bcc7195af63366fc739489f%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20NSS_SDB_USE_CACHE%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20-%20-c%0A%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%23%2Fbin%2Fbash%0A%20%20%20%20%20%20sigterm_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGTERM%20%22%24pid%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20reload_keepalived()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20pid%3D%24(pgrep%20-o%20keepalived)%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20kill%20-s%20SIGHUP%20%22%24pid%22%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20msg_handler()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20read%20-r%20line%3B%20do%0A%20%20%20%20%20%20%20%20%20%20echo%20%22The%20client%20sent%3A%20%24line%22%20%3E%262%0A%20%20%20%20%20%20%20%20%20%20%23%20currently%20only%20'reload'%20msg%20is%20supported%0A%20%20%20%20%20%20%20%20%20%20if%20%5B%20%22%24line%22%20%3D%20reload%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reload_keepalived%0A%20%20%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%20%20done%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20remove_vip()%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20address%3D%241%0A%20%20%20%20%20%20%20%20interface%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%242%7D%22)%0A%20%20%20%20%20%20%20%20cidr%3D%24(ip%20-o%20a%20%7C%20awk%20%22%2F%5Cs%24%7Baddress%7D%5C%2F%2F%20%7Bprint%20%5C%244%7D%22)%0A%20%20%20%20%20%20%20%20if%20%5B%20-n%20%22%24interface%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20ip%20a%20del%20%24cidr%20dev%20%24interface%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20set%20-ex%0A%20%20%20%20%20%20%23%20Ensure%20that%20we%20don't%20have%20stale%20VIPs%20configured%0A%20%20%20%20%20%20%23%20See%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1931505%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20remove_vip%20%22%3Cno%20value%3E%22%0A%20%20%20%20%20%20declare%20-r%20keepalived_sock%3D%22%2Fvar%2Frun%2Fkeepalived%2Fkeepalived.sock%22%0A%20%20%20%20%20%20export%20-f%20msg_handler%0A%20%20%20%20%20%20export%20-f%20reload_keepalived%0A%20%20%20%20%20%20export%20-f%20sigterm_handler%0A%0A%20%20%20%20%20%20trap%20sigterm_handler%20SIGTERM%0A%20%20%20%20%20%20if%20%5B%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%2Fusr%2Fsbin%2Fkeepalived%20-f%20%2Fetc%2Fkeepalived%2Fkeepalived.conf%20--dont-fork%20--vrrp%20--log-detail%20--log-console%20%26%0A%20%20%20%20%20%20fi%0A%0A%20%20%20%20%20%20rm%20-f%20%22%24keepalived_sock%22%0A%20%20%20%20%20%20socat%20UNIX-LISTEN%3A%24%7Bkeepalived_sock%7D%2Cfork%20system%3A'bash%20-c%20msg_handler'%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20livenessProbe%3A%0A%20%20%20%20%20%20exec%3A%0A%20%20%20%20%20%20%20%20command%3A%0A%20%20%20%20%20%20%20%20-%20%2Fbin%2Fbash%0A%20%20%20%20%20%20%20%20-%20-c%0A%20%20%20%20%20%20%20%20-%20%7C%0A%20%20%20%20%20%20%20%20%20%20%5B%20!%20-s%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%20%5D%20%7C%7C%20(echo%20%22State%20%3D%20FAULT%22%20%3E%20%2Ftmp%2Fkeepalived.data%20%26%26%20kill%20-s%20SIGUSR1%20%22%24(pgrep%20-o%20keepalived)%22%20%26%26%20for%20i%20in%20%24(seq%205)%3B%20do%20grep%20-q%20%22State%20%3D%20FAULT%22%20%2Ftmp%2Fkeepalived.data%20%26%26%20sleep%201%20%7C%7C%20exit%200%3B%20done%20%26%26%20exit%201)%0A%20%20%20%20%20%20initialDelaySeconds%3A%2020%0A%20%20%20%20%20%20timeoutSeconds%3A%205%0A%20%20%20%20terminationMessagePolicy%3A%20FallbackToLogsOnError%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20-%20name%3A%20keepalived-monitor%0A%20%20%20%20securityContext%3A%0A%20%20%20%20%20%20privileged%3A%20true%0A%20%20%20%20image%3A%20quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3A420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618%0A%20%20%20%20env%3A%0A%20%20%20%20%20%20-%20name%3A%20ENABLE_UNICAST%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20%20%20-%20name%3A%20IS_BOOTSTRAP%0A%20%20%20%20%20%20%20%20value%3A%20%22no%22%0A%20%20%20%20command%3A%0A%20%20%20%20-%20dynkeepalived%0A%20%20%20%20-%20%22%2Fvar%2Flib%2Fkubelet%2Fkubeconfig%22%0A%20%20%20%20-%20%22%2Fconfig%2Fkeepalived.conf.tmpl%22%0A%20%20%20%20-%20%22%2Fetc%2Fkeepalived%2Fkeepalived.conf%22%0A%20%20%20%20-%20%22--api-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20-%20%22--ingress-vip%22%0A%20%20%20%20-%20%22%3Cno%20value%3E%22%0A%20%20%20%20resources%3A%0A%20%20%20%20%20%20requests%3A%0A%20%20%20%20%20%20%20%20cpu%3A%20100m%0A%20%20%20%20%20%20%20%20memory%3A%20200Mi%0A%20%20%20%20volumeMounts%3A%0A%20%20%20%20-%20name%3A%20resource-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fconfig%22%0A%20%20%20%20-%20name%3A%20kubeconfigvarlib%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Flib%2Fkubelet%22%0A%20%20%20%20-%20name%3A%20conf-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fetc%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20run-dir%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fvar%2Frun%2Fkeepalived%22%0A%20%20%20%20-%20name%3A%20chroot-host%0A%20%20%20%20%20%20mountPath%3A%20%22%2Fhost%22%0A%20%20%20%20imagePullPolicy%3A%20IfNotPresent%0A%20%20hostNetwork%3A%20true%0A%20%20tolerations%3A%0A%20%20-%20operator%3A%20Exists%0A%20%20priorityClassName%3A%20system-node-critical%0Astatus%3A%20%7B%7D%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/disabled-manifests/keepalived.yaml
        - contents:
            source: data:,NODE_SIZING_ENABLED%3Dfalse%0ASYSTEM_RESERVED_MEMORY%3D1Gi%0ASYSTEM_RESERVED_CPU%3D500m
          mode: 420
          overwrite: true
          path: /etc/node-sizing-enabled.env
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0Aset%20-e%0ANODE_SIZES_ENV%3D%24%7BNODE_SIZES_ENV%3A-%2Fetc%2Fnode-sizing.env%7D%0Afunction%20dynamic_memory_sizing%20%7B%0A%20%20%20%20total_memory%3D%24(free%20-g%7Cawk%20'%2F%5EMem%3A%2F%7Bprint%20%242%7D')%0A%20%20%20%20%23%20total_memory%3D8%20test%20the%20recommended%20values%20by%20modifying%20this%20value%0A%20%20%20%20recommended_systemreserved_memory%3D0%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2025%25%20of%20the%20first%204GB%20of%20memory%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24total_memory%200.25%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D1%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%204))%3B%20then%20%23%2020%25%20of%20the%20next%204GB%20of%20memory%20(up%20to%208GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.20%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-4))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%208))%3B%20then%20%23%2010%25%20of%20the%20next%208GB%20of%20memory%20(up%20to%2016GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.10%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%200.80%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-8))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3C%3D%20112))%3B%20then%20%23%206%25%20of%20the%20next%20112GB%20of%20memory%20(up%20to%20128GB)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%206.72%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_memory%3D%24((total_memory-112))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_memory%20%3E%3D%200))%3B%20then%20%23%202%25%20of%20any%20memory%20above%20128GB%0A%20%20%20%20%20%20%20%20recommended_systemreserved_memory%3D%24(echo%20%24recommended_systemreserved_memory%20%24(echo%20%24total_memory%200.02%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%24%7Brecommended_systemreserved_memory%7DGi%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_cpu_sizing%20%7B%0A%20%20%20%20total_cpu%3D%24(getconf%20_NPROCESSORS_ONLN)%0A%20%20%20%20recommended_systemreserved_cpu%3D0%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%206%25%20of%20the%20first%20core%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24total_cpu%200.06%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D0.06%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%201))%3B%20then%20%23%201%25%20of%20the%20next%20core%20(up%20to%202%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-1))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3C%3D%202))%3B%20then%20%23%200.5%25%20of%20the%20next%202%20cores%20(up%20to%204%20cores)%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.005%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D0%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%200.01%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20%20%20%20%20total_cpu%3D%24((total_cpu-2))%0A%20%20%20%20fi%0A%20%20%20%20if%20((%24total_cpu%20%3E%3D%200))%3B%20then%20%23%200.25%25%20of%20any%20cores%20above%204%20cores%0A%20%20%20%20%20%20%20%20recommended_systemreserved_cpu%3D%24(echo%20%24recommended_systemreserved_cpu%20%24(echo%20%24total_cpu%200.0025%20%7C%20awk%20'%7Bprint%20%241%20*%20%242%7D')%20%7C%20awk%20'%7Bprint%20%241%20%2B%20%242%7D')%0A%20%20%20%20fi%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%24%7Brecommended_systemreserved_cpu%7D%22%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0Afunction%20dynamic_ephemeral_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_pid_sizing%20%7B%0A%20%20%20%20echo%20%22Not%20implemented%20yet%22%0A%7D%0Afunction%20dynamic_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20dynamic_memory_sizing%0A%20%20%20%20dynamic_cpu_sizing%0A%20%20%20%20%23dynamic_ephemeral_sizing%0A%20%20%20%20%23dynamic_pid_sizing%0A%7D%0Afunction%20static_node_sizing%20%7B%0A%20%20%20%20rm%20-f%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_MEMORY%3D%241%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%20%20%20%20echo%20%22SYSTEM_RESERVED_CPU%3D%242%22%20%3E%3E%20%24%7BNODE_SIZES_ENV%7D%0A%7D%0A%0Aif%20%5B%20%241%20%3D%3D%20%22true%22%20%5D%3B%20then%0A%20%20%20%20dynamic_node_sizing%0Aelif%20%5B%20%241%20%3D%3D%20%22false%22%20%5D%3B%20then%0A%20%20%20%20static_node_sizing%20%242%20%243%0Aelse%0A%20%20%20%20echo%20%22Unrecongnized%20command%20line%20option.%20Valid%20options%20are%20%5C%22true%5C%22%20or%20%5C%22false%5C%22%22%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/dynamic-system-reserved-calc.sh
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDMDCCAhigAwIBAgIINU2nh3LTRBUwDQYJKoZIhvcNAQELBQAwNjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSAwHgYDVQQDExdhZG1pbi1rdWJlY29uZmlnLXNpZ25lcjAe%0AFw0yMTA4MTgxNTIzMTVaFw0zMTA4MTYxNTIzMTVaMDYxEjAQBgNVBAsTCW9wZW5z%0AaGlmdDEgMB4GA1UEAxMXYWRtaW4ta3ViZWNvbmZpZy1zaWduZXIwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz1VGanHA0u%2FYw3gDFtXG0q6dEpS%2FaknZj%0AI5YA%2FyX3uLRzbv6yx9AX9%2B4Pe4lHEN%2FgmwKtoLWiLFKtqoHCx8y%2FGpxSkHUnoJEM%0AKUBYUs3%2BXmMcfX3TfoaQg6lW%2BJ%2Bp6Ngt95zBIAW8V3P71r84WNjuWcOI%2B5eKOl4D%0AOdSZWF4VwIWMCweOxnzPHbLLSBdSBKcIc1p0d7xoOVDjbmYPzlfC2kW4yny1JMKn%0AS09sudUsIjrNc2I2597waCYg83AbFBzpMqhDyi3OPN2KVxB2tl4MHubwmNvuWViQ%0AKhRD9qjb1BIvUe4vvGmH6SdjLHMVhTa1CR%2BMFbbFapDh4PjfPCuhAgMBAAGjQjBA%0AMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBQBjezA%0AuaURN0C2BprQc7%2B6kNY73zANBgkqhkiG9w0BAQsFAAOCAQEADuVCSbh%2FMt6lntRx%0AGEriNjEpEuN3sgG3Y5Ohq0B%2FLP5o1cfYHRMH%2FCSjdUOToyI0cpoCmTqx3bJh1hlb%0AzBNykGCvs5BR3SWclnlZ3A8ER%2BZ%2FMaT0L8OyzCDnTGNJQ%2F71XWTCPYGQAcY7WHPH%0ASvSIN89dwXi2z5oTk8qLQusWmvTJIEhAVkPsJoyefnUmQ5hBT0vhjud229GhOq6%2F%0AuArr2YHgG%2FvumhGrYlMAhva0jInR6tWW6kpg%2BJ3tsThq7d8AbKLVvshMZ%2B2xsepL%0AK9BAfLMcP3m3USwfRumoDKeOvVvyBLZrlPkkhhTBJX0buHJgpS2EzhAgncRuOIYl%0A2XW0Cw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDHjCCAgagAwIBAgIIDu5dEFdpcbQwDQYJKoZIhvcNAQELBQAwLTESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRcwFQYDVQQDEw5rdWJlbGV0LXNpZ25lcjAeFw0yMTA4MTgx%0ANTIzMThaFw0yMTA4MTkxNTIzMThaMC0xEjAQBgNVBAsTCW9wZW5zaGlmdDEXMBUG%0AA1UEAxMOa3ViZWxldC1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK%0AAoIBAQDgCCnmcsjgzp5ZXc3oZQmYHbuANVuFlFqynMXOgiw6a29iHOSQHV2uoTwG%0Aai5h6qHWNptSUUwSbNf5VNi%2BmL9d%2F7jbWpBX6grD3HjGx1Tr4J8XIYfQPHpNIj6x%0AYvVxoLhNzjvrXxKH6sIe7gzV3nWgBz6yu6vhaIMaNg%2FKTnuPKztxz6TsHSnKh2vr%0Ao9HqYBhxN3aFQcHuIuxIUfKuaDgXCBqwoRiv8s%2FhPYynx%2F9sXJqHOJZCY0u0OUj3%0AsN22G0FBDLBT7MiBZMc7pzKObncTA2Qm6slDFJYQTpq7xjfjSm9NyqrTjTTG%2Bint%0AdwV13dvt2zFjHn3eyGMSrmDOSZu1AgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAP%0ABgNVHRMBAf8EBTADAQH%2FMB0GA1UdDgQWBBTpBgda%2Fxc0zue5JHnil%2B6flA60izAN%0ABgkqhkiG9w0BAQsFAAOCAQEAwPyVCSr33%2FyPv3tg13sXIoK64SA6jZPxqt%2BFRxiq%0A7pnvcHmHKqjsoZM64sMJEm%2Fi5TqrqeUtN0BX%2BNJjRiEcEXgMn2Qz3GVyRRNWsX%2F8%0Ahk4Q6sWpfbZALZ8ge4nE07bZ6Bn8CPRn%2BhxxKh053NawXzdf2Qshnl3m4zMG0X4K%0ArNzFvQhLDJovmSDZOR91hLeQFbsttcTKCKX172DaHR%2F5haifFQaExOmidOmTtGpP%0AIGw4Si7An0NkxpsQs6VjyOZv%2BIxaxTnggsgcqAhAECgLQ6gIR71Fr%2F8Hzz6ouu64%0AvHX1hObP63qH%2FlzqSPr0UZxI4ZfbJMI7qbim9RKGMXynMw%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDNDCCAhygAwIBAgIIBCLrZzkNd7IwDQYJKoZIhvcNAQELBQAwODESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVy%0AMB4XDTIxMDgxODE1MjMxOFoXDTIyMDgxODE1MjMxOFowODESMBAGA1UECxMJb3Bl%0AbnNoaWZ0MSIwIAYDVQQDExlrdWJlLWNvbnRyb2wtcGxhbmUtc2lnbmVyMIIBIjAN%0ABgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN1Xr2D4OT86eiIT7I6XgxHO2UaV%0AAcvfq0b5d4LJmE2fTMQWIjpLFy7I29FDOveaxgs%2F%2FQBPiTq6vOrV%2Fnud50%2FM7NZi%0AbP5ep34EVJWVaL6XohxvOYrEP22Y4UbjiKsjIYsngk9GLJbI8mc70MsK85jYlNgN%0Am4ZXYGYN8OIF8e7Y%2BGoqNv6W4xPCRDpzptDf0WGDuOf%2FrTIfAwmMnEU7srzbHMmB%0Aqh5B2alh46pLA6wDgrAgBkCDZRHRUbUHX8OnfhgM644N2Oqek3Ne5rCRm%2Fxm%2FRds%0Ay%2BcFs5ntfUNjgpE0Yui5yvTfWPIy5ikUZn1K931d8xfmr%2FnrGniHPxYlHwIDAQAB%0Ao0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQU%0ATD1RWN3yPIScJIYLrQqEEhAumd8wDQYJKoZIhvcNAQELBQADggEBAKQdl7Snim0S%0AoPOzNLn%2F2mkXyWU%2FQ%2FugldDQwAx5i3IpsJ1upAHgYCMRbE7axhfydGgirr%2B4U1zB%0AFaNx8tgXbtW%2Boh%2FFxnPtKwV07bSl3CA2qoFMOvH2nUCBoP9ExA9xjUulZ8RYQ50q%0AJXyZ9H%2FTQ6hUDNGe%2FOYG2AIxUMXYZfBfqJC5X3ZunWTQCFQTKs4NIyqPzFd5rQZB%0AV23faOWyOT8O1q80DRzwcO6zRYuMb42ZgVGjtQ7gdFcgjtsXm2ylcUUZWRzP26u9%0AWmfJdkKqvTL3mi%2B8AiaTmbgg6HmHWtKTChuPLN2SQbralKPF2PCUDUEdRVBVSWaG%0AbG7EMersdUs%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDlTCCAn2gAwIBAgIIXLpHKIbvHcgwDQYJKoZIhvcNAQELBQAwWDFWMFQGA1UE%0AAwxNb3BlbnNoaWZ0LWt1YmUtYXBpc2VydmVyLW9wZXJhdG9yX2t1YmUtYXBpc2Vy%0AdmVyLXRvLWt1YmVsZXQtc2lnbmVyQDE2NTQ1MjkwMDIwHhcNMjIwNjA2MTUyMzIy%0AWhcNMjMwNjA2MTUyMzIzWjBYMVYwVAYDVQQDDE1vcGVuc2hpZnQta3ViZS1hcGlz%0AZXJ2ZXItb3BlcmF0b3Jfa3ViZS1hcGlzZXJ2ZXItdG8ta3ViZWxldC1zaWduZXJA%0AMTY1NDUyOTAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoVP6KD%0AggNBIcP9KsNdpVrZyuNHS%2B0gkFNfGb0uP6XQWGi3Xaqdn48qR8SEf3lTSXj8PXEi%0Ay4KtyNSBqemzw2I5%2BX%2Ba5MJARGrTePPKnEKMlWvvvrL5CjvLK8N18FipoEF1GX%2FF%0AkFbR1ofcEoGjhd1u0ReuSsJD2N3AA7hYMiT7cSeU23ggPkqghtkOHj85kftHHqNs%0AhdYHiDiokUCNbWdVJxzA05u7DIkXGeBp6NKnTM5DgNA4m64aXxV%2FROqsI4f%2Fw52d%0AG9hIeoe68YUC9rNlbOZSB4Chxezi%2BxO%2FvcNOhuUosk7EB8N2gQzSClBhV92LFab9%0A2CGiRV%2BhpgyOrc8CAwEAAaNjMGEwDgYDVR0PAQH%2FBAQDAgKkMA8GA1UdEwEB%2FwQF%0AMAMBAf8wHQYDVR0OBBYEFPms2e0p3yn2S31zJJhlJ2Uvr3AbMB8GA1UdIwQYMBaA%0AFPms2e0p3yn2S31zJJhlJ2Uvr3AbMA0GCSqGSIb3DQEBCwUAA4IBAQAUe01%2FTju8%0AV%2FiuZn5zmju1u2LQFc0fHCv9wX%2Bxv3IzpcXtO1hYN3B768km6MBWwFgbiE56yVFf%0AMRetXBraZ%2FNfik0ar7DFfTwLz3aS6C2Abj70SDxexZJF55XSi6s6jAFaQyrSqe3U%0ArtzEqqAD7J%2FR6MtA2hjAPEGwtARinVBKpRXuaYMuxGkYKgrWkuYDgq4pmcp1H2Hx%0AifzrnuWfRJHEpOy0N3szgw50WbY9btOqx86GzPeKFK%2FOLvicPJzZ3RWIvyf3Ve7s%0A2OWkuKchcK1B8jCfc7m7o9LyNRIXv1kLj53ElElIowIrC9sb1l1YzdImSpeo4QE%2B%0Aeoc%2BsLKXFOBi%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIDSDCCAjCgAwIBAgIIIZcGrlRTC0kwDQYJKoZIhvcNAQELBQAwQjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MSwwKgYDVQQDEyNrdWJlbGV0LWJvb3RzdHJhcC1rdWJlY29u%0AZmlnLXNpZ25lcjAeFw0yMTA4MTgxNTIzMTZaFw0zMTA4MTYxNTIzMTZaMEIxEjAQ%0ABgNVBAsTCW9wZW5zaGlmdDEsMCoGA1UEAxMja3ViZWxldC1ib290c3RyYXAta3Vi%0AZWNvbmZpZy1zaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0%0AE9Lg7Hf0%2Bc3S8HqAwYmlDgSbkWSC9mQS4D02KViQnqsWlZcSzQllCzpZPkqFjxBw%0AoDH7Q2EuwIqiOUDsVQUZXbt%2F0VWSHO7ryckPOD6LYVEY2U0EssyP14nkagaSOSQ%2B%0ANof2k16a2459Nu4B05vb2iy%2F0fHcQauTSr5FWbxMthgcE7Ah4Xp1jmdlG1PkTPEg%0Ai%2BCdNZCzXms%2F91oRu181wNQU9FP5%2BfMY7oBVKLTAINdtQcobFp4rVIr8TX1067Dy%0A2ddT6bW%2F%2B6%2FfDAfp77hWxSiE7jYwH8Pp7yDhHyw1rfWRPeIZLQY29e7rdnhTnqLG%0AL4e0ImYiMS7MyHmEbWvxAgMBAAGjQjBAMA4GA1UdDwEB%2FwQEAwICpDAPBgNVHRMB%0AAf8EBTADAQH%2FMB0GA1UdDgQWBBTaGeKt%2BAuYo%2B%2F7i8dYVMbz04JXezANBgkqhkiG%0A9w0BAQsFAAOCAQEANCP9rn%2BKGXzskXVWKaZdwLUTjwop%2FGPSWXHRyQQ3KpfIUFwa%0A4W0jMH%2Fjtv075cZpYpyZic9q3cXCWwOruvzpOIGDCt4tt%2B7UyDqKrKq25%2B8ZtvIP%0A%2BnYVepZH6UHl9%2FlT2YM26eky%2F9YKOUDt4px5fBnhBg0IhIcoj1%2FdwXBopB44cKIx%0AFiPjMPKCOX8Z0z2LIkFuSUaXvSgWASrYzgghqlLCYAvR156o3CmbN18BgYvBg1wA%0Ad6Na63qjiGzfh%2F8zJbuOMAy1o4OQtr84NKQGvSOQ1jchrJ6ZYfbtoMdlJ5pazQ%2FX%0A2KUhrIxJ9W6F822HDyIry%2B7tz8NX3h1EP0dw5Q%3D%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet-ca.crt
        - contents:
            source: data:,%23%20Turning%20on%20Accounting%20helps%20track%20down%20performance%20issues.%0A%5BManager%5D%0ADefaultCPUAccounting%3Dyes%0ADefaultMemoryAccounting%3Dyes%0ADefaultBlockIOAccounting%3Dyes%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system.conf.d/kubelet-cgroups.conf
        - contents:
            source: data:,%5BService%5D%0AEnvironment%3D%22KUBELET_LOG_LEVEL%3D2%22%0A
          mode: 420
          overwrite: true
          path: /etc/systemd/system/kubelet.service.d/20-logging.conf
        - contents:
            source: data:,%23%20ignore%20known%20SDN-managed%20devices%0A%5Bdevice%5D%0Amatch-device%3Dinterface-name%3Abr-int%3Binterface-name%3Abr-local%3Binterface-name%3Abr-nexthop%2Cinterface-name%3Aovn-k8s-*%2Cinterface-name%3Ak8s-*%3Binterface-name%3Atun0%3Binterface-name%3Abr0%3Bdriver%3Aveth%0Amanaged%3D0%0A
          mode: 420
          overwrite: true
          path: /etc/NetworkManager/conf.d/sdn.conf
        - contents:
            source: data:,D%20%2Frun%2Fnm-system-connections%200755%20root%20root%20-%20-%0AD%20%2Frun%2Fnm-system-connections-work%200755%20root%20root%20-%20-%0Ad%20%2Fetc%2FNetworkManager%2FsystemConnectionsMerged%200755%20root%20root%20-%20-%0A
          mode: 420
          overwrite: true
          path: /etc/tmpfiles.d/nm.conf
        - contents:
            source: data:,%7B%22auths%22%3A%7B%22cloud.openshift.com%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22quay.io%22%3A%7B%22auth%22%3A%22b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K2FwcmlsMDMxcG1tdTN0MGZhOWFtazZ3N3dzMGVqb3A0OGQ6MkQxTjRURzAyQlVUSURHQVJDM0pYRUdMVjAxUFpPSTBGQlVJSEhUWUtPUjROSE80NTlaNlY2VDVKRTlPTzJJVA%3D%3D%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.connect.redhat.com%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22registry.redhat.io%22%3A%7B%22auth%22%3A%22MzA4NTk2Nnx1aGMtMVBtTXUzVDBmQTlhTWs2VzdXczBFSm9QNDhkOmV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnpkV0lpT2lJNFpEWmlPV1l4WW1ZeVpEYzBPRFpsWVRRMVpXVXlaVFZrWkROak1qTXdOeUo5LllaVUstbDNGRjViLVdCYWs5TmczMldhakxaek94ZUtoZDB0SGg5ZUdDdlNUYnVzS0sxWXJBendKV2NmUjk5VGJkMW1QQnhaY3k3YVQ2V1lvY3ZnNXUzRmZqTHgzTGdLRHU5elYxU1VmVmlGQXJLbVFhcWJFSzRyZUJ2Q0dCZkVNOXpHNVl2cXMzZ21fNHZFVk9Bd2dCcVpvalhPSFFDWHluN0JNVlh6X0FydlNjOUFjRmlSY1kxUFNsT3AzWUk0a3dhTDZfZEJCNS11cGk5dmE1QVlZd1pScWF5Q2Zhd2N4NVlvNmludXQ3UEliUWt6Z3pXUlRQU2dhdDZkcFJERERWdzBLOW1fMkFpbWxETnZGZUZmRzkyOE1qVDVUdTYySy1Bcld3Z21Sa2hFSjZsaFloNzZzVFQ4S1ZZZjVwaUtjaGxNNkdnRVBXLVY1LVFUSmpILUVIOGloa19TUUZUejJtYjFzcHFJV3RJSV9uQmtxbnBpcUdycllVUnFzbnJFVWQzcGV0QTZ4dS1aNXVtTE1vSVhVd28wdDVaYXprcVBMOUFBR2gwb2FPUTdiSkptZkd4eU1HcmRTdkF2b3FXSkNSdDVpQzg3aDBrS0RsakRIYlhzVGVyRlh1VDdvT3NzSXR5VkMwdXhqWEN6ZmZYa284QTV4UUNmTUVQSVBocGRCNkxvQXhsaTlyZHRreXRhVm90N3BQUWpDQWNSTUVxZnhwMFZVT3FhbVZVeXFPbVRpUkE5QU9BOEhJT2RFUXJoVXJQR1VsVlF1aHFkYlhLV3ZtQ3VJczJlUzRORVc1SUhhS1V1cDBKZ1U3Q01BMV9MMTVvYTdMRXpTWl9UYWNSZjdPeUVOd0hkaEluVU9ZbWZwTVVIUlQzbWFjOVdVbWNIWHdsLU5FVGRuZXMw%22%2C%22email%22%3A%22cdefer%40us.ibm.com%22%7D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%7B%22auth%22%3A%22Qy1VQkwxODk3QG5vbWFpbC5yZWxheS5pYm0uY29tOkFLQ3A4a3IxNDZRZnRFb3NYU2RnVW1BUXZ1VWtqWlNZRjNHM2dQekVLaUFhZkN0YUVXMnVwUXNORWd4UDZhRmJWd253NW54QVQ%3D%22%2C%22email%22%3A%22devsecops%40ibm.com%22%7D%7D%7D%0A
          mode: 384
          overwrite: true
          path: /var/lib/kubelet/config.json
        - contents:
            source: data:,-----BEGIN%20CERTIFICATE-----%0AMIIDEDCCAfigAwIBAgIIPzXphMxZqkMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE%0ACxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTIxMDgxODE1MjMxMFoX%0ADTMxMDgxNjE1MjMxMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy%0Ab290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9AVC2dyveiYJ%0ANiOiy0VBPlXG4pLkm2k7TIgRxyXbUlAhyVPNj%2BhwDpENv4lT9MMbvlN%2B6f%2BUfmqz%0AxEg6ewND9k4PcNR6k3LzZneZpp9El8A135QiTJtBpcu2QhyfLOUrcx10UyHUc0j0%0AC1UTYzXzyfIAnDmZXfxuC3RysnWyVvU4lqc8pJ7eZqbwa5wmIxUEdlpi1YbPSxNN%0A1TUZ8yyS58eBsyS18ZC%2FJMEUH8gcr5cxs6%2F1Kz%2BwtWHKL8DJNMupV8Tvzec2oefg%0AkMp10Ml1QRR1qVmF2tbIOZAmtW2x6qP9FETxTTWHmpJusLeKf7tRNpsqFxCwl8OS%0AvUAvKdWK%2FwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH%2FBAUwAwEB%0A%2FzAdBgNVHQ4EFgQUe%2BlNDcMaY%2Boi2yJNAs4%2BgrjxKH4wDQYJKoZIhvcNAQELBQAD%0AggEBAL67lXlCjPRhBGDbrntiKWttcrS6It%2F8%2FCTd7sMSRQ9GYiTR0Y3x8IH40ad6%0ASVAe%2BUd%2FqsvInRe2ZdVeT1Je9ZmUMTzGzxYTUnJ1d9sevO5PqqFCVk0TneEvdVpD%0AwbaMPEacbxGEtZHU8s9nz1cSQ68krvNIiBeaArzwpVvwL51E0VvAHCk7B%2FY3rlzm%0A6z7IQ4UsCBsVBTAPwAzeHvsR4vygKrkoA0WHke%2FY9iKAxlR2eB6VTMm95Nr69m61%0AXjK9e5ub1ovKqK0FpIo3rZ1fwBhQ1Jb1agMJPC%2B67Br9doKvdhVRf%2FHivIJ%2BV%2B3K%0Ayj7nSR5e%2F3bvf1SNq20JHAKHAb4%3D%0A-----END%20CERTIFICATE-----%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/ca.crt
        - contents:
            source: data:,%23%20disable%20key%20lookup%20from%20~%2F.ssh%2Fauthorized_keys.d%2F%20on%20FCOS%0AAuthorizedKeysCommand%20none%0A
          mode: 420
          overwrite: true
          path: /etc/ssh/sshd_config.d/10-disable-ssh-key-dir.conf
        - contents:
            source: data:,net.ipv4.ip_forward%20%3D%201%0Anet.ipv6.conf.all.forwarding%20%3D%201%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/forward.conf
        - contents:
            source: data:,%0Afs.inotify.max_user_watches%20%3D%2065536%0Afs.inotify.max_user_instances%20%3D%208192%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/inotify.conf
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20On%20some%20platforms%20the%20hostname%20may%20be%20too%20long%20(%3E63%20chars).%0A%23%20%20-%20On%20firstboot%20the%20hostname%20is%20set%20in%20the%20initramfs%20before%20NetworkManager%0A%23%20%20%20%20And%20it%20may%20be%20truncated%20at%2064%20characters%20(too%20long)%0A%23%20%20-%20On%20reboot%20affect%20nodes%20use%20'localhost'.%0A%23%0A%23%20This%20script%20is%20a%20simple%20workaround%20for%20hostname%20woes%2C%20including%0A%23%20%20-%20NOT%20a%20localhost%20name%0A%23%20%20-%20NOT%20longer%20than%2063%20characters.%20Names%20will%20be%20truncated%20at%20the%0A%23%20%20%20%20first%20dot%2C%20and%20then%20capped%20at%2063%20char%20(which%20ever%20is%20less).%0A%23%20%20-%20Race%20conditions%20between%20truncated%20hostnames%20by%20the%20dhclient%0A%23%20%20%20%20and%20NetworkManager.%0A%23%0A%23%20Finally%2C%20this%20script%20is%20invoked%20via%3A%0A%23%20%20-%20%2Fetc%2FNetworkManager%2Fdispatcher.d%2F90-long-hostnames%0A%23%20%20-%20on%20boot%20via%20node-valid-hostname.service%0A%0Aexport%20PATH%3D%22%2Fusr%2Fbin%3A%2Fusr%2Flocal%2Fbin%3A%2Fsbin%3A%2Fusr%2Flocal%2Fsbin%3A%2Fbin%3A%24%7BPATH%7D%22%0Alog()%20%7B%20logger%20--tag%20%22%24(basename%20%240)%22%20%22%24%7B%40%7D%22%3B%20%7D%0A%0A%23%20wait_localhost%20waits%20until%20the%20host%20gets%20a%20real%20hostname.%0A%23%20This%20will%20wait%20indefinately.%20node-valid-hostname.service%20will%20terminate%0A%23%20this%20after%205m.%0Await_localhost()%20%7B%0A%20%20%20%20log%20%22waiting%20for%20non-localhost%20hostname%20to%20be%20assigned%22%0A%20%20%20%20while%20%5B%5B%20%22%24(%3C%20%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%20%3D~%20(localhost%7Clocalhost.localdomain)%20%5D%5D%3B%0A%20%20%20%20do%0A%20%20%20%20%20%20%20%20sleep%201%0A%20%20%20%20done%0A%20%20%20%20log%20%22node%20identified%20as%20%24(%3C%2Fproc%2Fsys%2Fkernel%2Fhostname)%22%0A%20%20%20%20exit%200%0A%7D%0A%0Aset_valid_hostname()%20%7B%0A%20%20%20%20local%20host_name%3D%24%7B1%7D%0A%20%20%20%20local%20type_arg%3D%22transient%22%0A%0A%20%20%20%20%23%20%2Fetc%2Fhostname%20is%20used%20for%20static%20hostnames%20and%20is%20authorative.%0A%20%20%20%20%23%20This%20will%20check%20to%20make%20sure%20that%20the%20static%20hostname%20is%20the%0A%20%20%20%20%23%20less%20than%20or%20equal%20to%2063%20characters%20in%20length.%0A%20%20%20%20if%20%5B%20-f%20%2Fetc%2Fhostname%20%5D%20%26%26%20%5B%20%22%24(cat%20%2Fetc%2Fhostname%20%7C%20wc%20-m)%22%20-gt%200%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20etc_name%3D%22%24(%3C%20%2Fetc%2Fhostname)%22%0A%20%20%20%20%20%20%20%20type_arg%3D%22static%22%0A%20%20%20%20%20%20%20%20if%20%5B%20%22%24%7Betc_name%7D%22%20!%3D%20%22%24%7Bhost_name%7D%22%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22%2Fetc%2Fhostname%20is%20set%20to%20%24%7Betc_name%7D%20but%20does%20not%20match%20%24%7Bhost_name%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20log%20%22using%20%2Fetc%2Fhostname%20as%20the%20authorative%20name%22%0A%20%20%20%20%20%20%20%20%20%20%20%20host_name%3D%22%24%7Betc_name%7D%22%0A%20%20%20%20%20%20%20%20fi%0A%20%20%20%20fi%0A%0A%20%20%20%20%23%20Only%20mutate%20the%20hostname%20if%20the%20length%20is%20longer%20than%2063%20characters.%20The%0A%20%20%20%20%23%20hostname%20will%20be%20the%20lesser%20of%2063%20characters%20after%20the%20first%20dot%20in%20the%0A%20%20%20%20%23%20FQDN.%0A%20%20%20%20if%20%5B%20%22%24%7B%23host_name%7D%22%20-gt%2063%20%5D%3B%20then%0A%20%20%20%20%20%20%20%20alt_name%3D%24(printf%20%22%24%7Bhost_name%7D%22%20%7C%20cut%20-f1%20-d'.'%20%7C%20cut%20-c%20-63)%0A%20%20%20%20%20%20%20%20log%20%22%24%7Bhost_name%7D%20is%20longer%20than%2063%20characters%2C%20using%20trunacated%20hostname%22%0A%20%20%20%20%20%20%20%20host_name%3D%22%24%7Balt_name%7D%22%0A%20%20%20%20fi%0A%20%20%20%20log%20%22setting%20%24%7Btype_arg%7D%20hostname%20to%20%24%7Bhost_name%7D%22%0A%20%20%20%20%2Fbin%2Fhostnamectl%20%22--%24%7Btype_arg%7D%22%20set-hostname%20%22%24%7Bhost_name%7D%22%0A%20%20%20%20exit%200%0A%7D%0A%0Acli_run()%20%7B%0A%20%20%20%20mode%3D%22%24%7B1%3A%3Fmode%20must%20be%20the%20first%20argument%7D%22%3B%20shift%3B%0A%20%20%20%20case%20%22%24%7Bmode%7D%22%20in%0A%20%20%20%20%20%20%20%20%20%20%20%20wait_localhost)%20wait_localhost%3B%3B%0A%20%20%20%20%20%20%20%20set_valid_hostname)%20hname%3D%22%24%7B1%3A%3Fhostname%20is%20a%20required%20last%20argument%7D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20set_valid_hostname%20%22%24%7Bhname%7D%22%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*)%20log%20%22unknown%20mode%20%24%7Bmode%7D%22%3B%20exit%201%3B%3B%0A%20%20%20%20esac%0A%7D%0A%0A%23%20Allow%20the%20functions%20to%20be%20sourced.%20This%20can%20be%20run%20either%20as%20a%0A%23%20standalone%20command%20or%20in%20systemd%20or%20part%20of%20NetworkManager.%0Aif%20%5B%5B%20%22%24%7BBASH_SOURCE%5B0%5D%7D%22%20%3D%3D%20%22%24%7B0%7D%22%20%5D%5D%3B%20then%0A%20%20%20%20cli_run%20%24%7B%40%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/sbin/set-valid-hostname.sh
        - contents:
            source: data:,
          mode: 493
          overwrite: true
          path: /etc/kubernetes/kubelet-plugins/volume/exec/.dummy
        - contents:
            source: data:,%23!%2Fbin%2Fbash%0A%23%20Workaround%3A%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1941714%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1935539%0A%23%20https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D1987108%0A%0Adriver%3D%24(nmcli%20-t%20-m%20tabular%20-f%20general.driver%20dev%20show%20%22%24%7BDEVICE_IFACE%7D%22)%0A%0Aif%20%5B%5B%20%22%242%22%20%3D%3D%20%22up%22%20%26%26%20%22%24%7Bdriver%7D%22%20%3D%3D%20%22vmxnet3%22%20%5D%5D%3B%20then%0A%20%20logger%20-s%20%2299-vsphere-disable-tx-udp-tnl%20triggered%20by%20%24%7B2%7D%20on%20device%20%24%7BDEVICE_IFACE%7D.%22%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-udp_tnl-csum-segmentation%20off%0A%20%20ethtool%20-K%20%24%7BDEVICE_IFACE%7D%20tx-checksum-ip-generic%20off%0Afi%0A
          mode: 484
          overwrite: true
          path: /etc/NetworkManager/dispatcher.d/99-vsphere-disable-tx-udp-tnl
        - contents:
            source: data:,%23!%2Fusr%2Fbin%2Fenv%20bash%0Aset%20-e%0A%0A%23%20only%20run%20if%20the%20hostname%20is%20not%20set%0Atest%20-f%20%2Fetc%2Fhostname%20%26%26%20exit%200%20%7C%7C%20%3A%0A%0Aif%20vm_name%3D%24(%2Fbin%2Fvmtoolsd%20--cmd%20'info-get%20guestinfo.hostname')%3B%20then%0A%20%20%20%20%2Fusr%2Fbin%2Fhostnamectl%20set-hostname%20--static%20%24%7Bvm_name%7D%0Afi%0A
          mode: 493
          overwrite: true
          path: /usr/local/bin/vsphere-hostname.sh
        - contents:
            source: data:,unqualified-search-registries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%5D%0A
          mode: 420
          overwrite: true
          path: /etc/containers/registries.conf
        - contents:
            source: data:,%5Bcrio%5D%0Ainternal_wipe%20%3D%20true%0Astorage_driver%20%3D%20%22overlay%22%0Astorage_option%20%3D%20%5B%0A%20%20%20%20%22overlay.override_kernel_check%3D1%22%2C%0A%5D%0A%0A%5Bcrio.api%5D%0Astream_address%20%3D%20%22%22%0Astream_port%20%3D%20%2210010%22%0A%0A%5Bcrio.runtime%5D%0Aselinux%20%3D%20true%0Aconmon%20%3D%20%22%22%0Aconmon_cgroup%20%3D%20%22pod%22%0Adefault_env%20%3D%20%5B%0A%20%20%20%20%22NSS_SDB_USE_CACHE%3Dno%22%2C%0A%5D%0Alog_level%20%3D%20%22info%22%0Acgroup_manager%20%3D%20%22systemd%22%0Adefault_sysctls%20%3D%20%5B%0A%20%20%20%20%22net.ipv4.ping_group_range%3D0%202147483647%22%2C%0A%5D%0Ahooks_dir%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%20%20%20%20%22%2Frun%2Fcontainers%2Foci%2Fhooks.d%22%2C%0A%5D%0Amanage_ns_lifecycle%20%3D%20true%0Aabsent_mount_sources_to_reject%20%3D%20%5B%0A%20%20%20%20%22%2Fetc%2Fhostname%22%2C%0A%5D%0A%0A%5Bcrio.image%5D%0Aglobal_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_image%20%3D%20%22quay.io%2Fopenshift-release-dev%2Focp-v4.0-art-dev%40sha256%3Ad45d02c3a6f9bcaee28ba7232a9d054ae8ec9bfccd1a504a00c597997e75e126%22%0Apause_image_auth_file%20%3D%20%22%2Fvar%2Flib%2Fkubelet%2Fconfig.json%22%0Apause_command%20%3D%20%22%2Fusr%2Fbin%2Fpod%22%0A%0A%5Bcrio.network%5D%0Anetwork_dir%20%3D%20%22%2Fetc%2Fkubernetes%2Fcni%2Fnet.d%2F%22%0Aplugin_dirs%20%3D%20%5B%0A%20%20%20%20%22%2Fvar%2Flib%2Fcni%2Fbin%22%2C%0A%20%20%20%20%22%2Fusr%2Flibexec%2Fcni%22%2C%0A%5D%0A%0A%5Bcrio.metrics%5D%0Aenable_metrics%20%3D%20true%0Ametrics_port%20%3D%209537%0A
          mode: 420
          overwrite: true
          path: /etc/crio/crio.conf.d/00-default
        - contents:
            source: data:text/plain,%7B%22default%22%3A%5B%7B%22type%22%3A%22reject%22%7D%5D%2C%22transports%22%3A%7B%22atomic%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker%22%3A%7B%22cp.icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker-registry.sec.ibm.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22docker.elastic.co%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22ghcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22icr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22image-registry.openshift-image-registry.svc%3A5000%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22k8s.gcr.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22mss-docker.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22quay.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry-auth.twistlock.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.access.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.connect.redhat.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22registry.redhat.io%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%2C%22sec-isc-team-isc-icp-docker-local.artifactory.swg-devops.com%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%2C%22docker-daemon%22%3A%7B%22%22%3A%5B%7B%22type%22%3A%22insecureAcceptAnything%22%7D%5D%7D%7D%7D
          mode: 420
          overwrite: true
          path: /etc/containers/policy.json
        - contents:
            source: data:,%5BGlobal%5D%0Asecret-name%20%3D%20%22vsphere-creds%22%0Asecret-namespace%20%3D%20%22kube-system%22%0Ainsecure-flag%20%3D%20%221%22%0A%0A%5BWorkspace%5D%0Aserver%20%3D%20%22atl-prd-vctr-02.sec.ibm.com%22%0Adatacenter%20%3D%20%22MSS-ATL-PRODUCTION%22%0Adefault-datastore%20%3D%20%22atl-prd-esxsan-06-2-vms-ssd%22%0Afolder%20%3D%20%22%2FMSS-ATL-PRODUCTION%2Fvm%2Fatl-prd-ocp-02%22%0A%0A%5BVirtualCenter%20%22atl-prd-vctr-02.sec.ibm.com%22%5D%0Adatacenters%20%3D%20%22MSS-ATL-PRODUCTION%22
          mode: 420
          overwrite: true
          path: /etc/kubernetes/cloud.conf
        - contents:
            source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous%3A%0A%20%20%20%20enabled%3A%20false%0AcgroupDriver%3A%20systemd%0AcgroupRoot%3A%20%2F%0AclusterDNS%3A%0A%20%20-%20172.30.0.10%0AclusterDomain%3A%20cluster.local%0AcontainerLogMaxSize%3A%2050Mi%0AmaxPods%3A%20250%0AkubeAPIQPS%3A%2050%0AkubeAPIBurst%3A%20100%0ArotateCertificates%3A%20true%0AserializeImagePulls%3A%20false%0AstaticPodPath%3A%20%2Fetc%2Fkubernetes%2Fmanifests%0AsystemCgroups%3A%20%2Fsystem.slice%0AsystemReserved%3A%0A%20%20ephemeral-storage%3A%201Gi%0AfeatureGates%3A%0A%20%20APIPriorityAndFairness%3A%20true%0A%20%20LegacyNodeRoleBehavior%3A%20false%0A%20%20NodeDisruptionExclusion%3A%20true%0A%20%20RotateKubeletServerCertificate%3A%20true%0A%20%20ServiceNodeExclusion%3A%20true%0A%20%20SupportPodPidsLimit%3A%20true%0A%20%20DownwardAPIHugePages%3A%20true%0AserverTLSBootstrap%3A%20true%0AtlsMinVersion%3A%20VersionTLS12%0AtlsCipherSuites%3A%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384%0A%20%20-%20TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256%0A%20%20-%20TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256%0A
          mode: 420
          overwrite: true
          path: /etc/kubernetes/kubelet.conf
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chmod%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chmod_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20chown%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dperm_mod%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-chown_dac_modification.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/bin/chcon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_bin_chcon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/restorecon%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_restorecon_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/semanage%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_semanage_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setfiles%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setfiles_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/setsebool%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_setsebool_execution.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20path%3D/usr/sbin/seunshare%20-F%20auid%3E%3D1000%20-F%20auid%21%3Dunset%20-F%20key%3Dprivileged%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-usr_sbin_seunshare_execution.rules
        - contents:
            source: data:,-w%20/var/run/faillock%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-faillock_login_events.rules
        - contents:
            source: data:,-w%20/var/log/lastlog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-lastlog_login_events.rules
        - contents:
            source: data:,-w%20/var/log/tallylog%20-p%20wa%20-k%20logins%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-tallylog_login_events.rules
        - contents:
            source: data:,-a%20always%2Cexit%20-F%20arch%3Db32%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-a%20always%2Cexit%20-F%20arch%3Db64%20-S%20sethostname%2Csetdomainname%20-F%20key%3Daudit_rules_networkconfig_modification%0A-w%20/etc/issue%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/issue.net%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/hosts%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A-w%20/etc/sysconfig/network%20-p%20wa%20-k%20audit_rules_networkconfig_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_networkconfig_modification.rules
        - contents:
            source: data:,-w%20/etc/group%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/passwd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/gshadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/shadow%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A-w%20/etc/security/opasswd%20-p%20wa%20-k%20audit_rules_usergroup_modification%0A
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit_rules_usergroup_modification.rules
        - contents:
            source: data:,%23%0A%23%20This%20file%20controls%20the%20configuration%20of%20the%20audit%20daemon%0A%23%0A%0Alocal_events%20%3D%20yes%0Awrite_logs%20%3D%20yes%0Alog_file%20%3D%20/var/log/audit/audit.log%0Alog_group%20%3D%20root%0Alog_format%20%3D%20ENRICHED%0Aflush%20%3D%20incremental_async%0Afreq%20%3D%2050%0Amax_log_file%20%3D%208%0Anum_logs%20%3D%205%0Apriority_boost%20%3D%204%0Aname_format%20%3D%20hostname%0A%23%23name%20%3D%20mydomain%0Amax_log_file_action%20%3D%20rotate%0Aspace_left%20%3D%20100%0Aspace_left_action%20%3D%20syslog%0Averify_email%20%3D%20yes%0Aaction_mail_acct%20%3D%20root%0Aadmin_space_left%20%3D%2050%0Aadmin_space_left_action%20%3D%20syslog%0Adisk_full_action%20%3D%20syslog%0Adisk_error_action%20%3D%20syslog%0Ause_libwrap%20%3D%20yes%0A%23%23tcp_listen_port%20%3D%2060%0Atcp_listen_queue%20%3D%205%0Atcp_max_per_addr%20%3D%201%0A%23%23tcp_client_ports%20%3D%201024-65535%0Atcp_client_max_idle%20%3D%200%0Atransport%20%3D%20TCP%0Akrb5_principal%20%3D%20auditd%0A%23%23krb5_key_file%20%3D%20/etc/audit/audit.key%0Adistribute_network%20%3D%20no%0Aq_depth%20%3D%20400%0Aoverflow_action%20%3D%20syslog%0Amax_restarts%20%3D%2010%0Aplugin_dir%20%3D%20/etc/audit/plugins.d
          mode: 416
          overwrite: true
          path: /etc/audit/auditd.conf
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/password-auth
        - contents:
            source: data:,%23%20Generated%20by%20authselect%20on%20Sat%20Oct%2027%2014%3A59%3A36%202018%0A%23%20Do%20not%20modify%20this%20file%20manually.%0A%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_env.so%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_faildelay.so%20delay%3D2000000%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_fprintd.so%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet%0Aauth%20%20%20%20%20%20%20%20%5Bdefault%3D1%20ignore%3Dignore%20success%3Dok%5D%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20try_first_pass%0Aauth%20%20%20%20%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3E%3D%201000%20quiet_success%0Aauth%20%20%20%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20forward_pass%0Aauth%20%20%20%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_localuser.so%0Aaccount%20%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20uid%20%3C%201000%20quiet%0Aaccount%20%20%20%20%20%5Bdefault%3Dbad%20success%3Dok%20user_unknown%3Dignore%5D%20pam_sss.so%0Aaccount%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_permit.so%0A%0Apassword%20%20%20%20requisite%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_pwquality.so%20try_first_pass%20local_users_only%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%20sha512%20shadow%20try_first_pass%20use_authtok%0Apassword%20%20%20%20sufficient%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%20use_authtok%0Apassword%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_deny.so%0A%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_keyinit.so%20revoke%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_limits.so%0A-session%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_systemd.so%0Asession%20%20%20%20%20%5Bsuccess%3D1%20default%3Dignore%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_succeed_if.so%20service%20in%20crond%20quiet%20use_uid%0Asession%20%20%20%20%20required%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_unix.so%0Asession%20%20%20%20%20optional%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pam_sss.so%0A
          mode: 420
          overwrite: true
          path: /etc/pam.d/system-auth
        - contents:
            source: data:,%0A%23%09$OpenBSD:%20sshd_config%2Cv%201.103%202018%2F04%2F09%2020:41:22%20tj%20Exp%20$%0A%0A%23%20This%20is%20the%20sshd%20server%20system-wide%20configuration%20file.%20%20See%0A%23%20sshd_config%285%29%20for%20more%20information.%0A%0A%23%20This%20sshd%20was%20compiled%20with%20PATH=%2Fusr%2Flocal%2Fbin:%2Fusr%2Fbin:%2Fusr%2Flocal%2Fsbin:%2Fusr%2Fsbin%0A%0A%23%20The%20strategy%20used%20for%20options%20in%20the%20default%20sshd_config%20shipped%20with%0A%23%20OpenSSH%20is%20to%20specify%20options%20with%20their%20default%20value%20where%0A%23%20possible%2C%20but%20leave%20them%20commented.%20%20Uncommented%20options%20override%20the%0A%23%20default%20value.%0A%0A%23%20If%20you%20want%20to%20change%20the%20port%20on%20a%20SELinux%20system%2C%20you%20have%20to%20tell%0A%23%20SELinux%20about%20this%20change.%0A%23%20semanage%20port%20-a%20-t%20ssh_port_t%20-p%20tcp%20%23PORTNUMBER%0A%23%0A%23Port%2022%0A%23AddressFamily%20any%0A%23ListenAddress%200.0.0.0%0A%23ListenAddress%20::%0A%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_rsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ecdsa_key%0AHostKey%20%2Fetc%2Fssh%2Fssh_host_ed25519_key%0A%0A%23%20Ciphers%20and%20keying%0ARekeyLimit%20512M%201h%0A%0A%23%20System-wide%20Crypto%20policy:%0A%23%20This%20system%20is%20following%20system-wide%20crypto%20policy.%20The%20changes%20to%0A%23%20Ciphers%2C%20MACs%2C%20KexAlgoritms%20and%20GSSAPIKexAlgorithsm%20will%20not%20have%20any%0A%23%20effect%20here.%20They%20will%20be%20overridden%20by%20command-line%20options%20passed%20on%0A%23%20the%20server%20start%20up.%0A%23%20To%20opt%20out%2C%20uncomment%20a%20line%20with%20redefinition%20of%20%20CRYPTO_POLICY=%0A%23%20variable%20in%20%20%2Fetc%2Fsysconfig%2Fsshd%20%20to%20overwrite%20the%20policy.%0A%23%20For%20more%20information%2C%20see%20manual%20page%20for%20update-crypto-policies%288%29.%0A%0A%23%20Logging%0A%23SyslogFacility%20AUTH%0ASyslogFacility%20AUTHPRIV%0A%23LogLevel%20INFO%0A%0A%23%20Authentication:%0A%0A%23LoginGraceTime%2060%0APermitRootLogin%20no%0AStrictModes%20yes%0A%23MaxAuthTries%206%0A%23MaxSessions%2010%0A%0APubkeyAuthentication%20yes%0A%0A%23%20The%20default%20is%20to%20check%20both%20.ssh%2Fauthorized_keys%20and%20.ssh%2Fauthorized_keys2%0A%23%20but%20this%20is%20overridden%20so%20installations%20will%20only%20check%20.ssh%2Fauthorized_keys%0AAuthorizedKeysFile%09.ssh%2Fauthorized_keys%0A%0A%23AuthorizedPrincipalsFile%20none%0A%0A%23AuthorizedKeysCommand%20none%0A%23AuthorizedKeysCommandUser%20nobody%0A%0A%23%20For%20this%20to%20work%20you%20will%20also%20need%20host%20keys%20in%20%2Fetc%2Fssh%2Fssh_known_hosts%0AHostbasedAuthentication%20no%0A%23%20Change%20to%20yes%20if%20you%20don%27t%20trust%20~%2F.ssh%2Fknown_hosts%20for%0A%23%20HostbasedAuthentication%0AIgnoreUserKnownHosts%20yes%0A%23%20Don%27t%20read%20the%20user%27s%20~%2F.rhosts%20and%20~%2F.shosts%20files%0AIgnoreRhosts%20yes%0A%0A%23%20To%20disable%20tunneled%20clear%20text%20passwords%2C%20change%20to%20no%20here%21%0A%23PasswordAuthentication%20yes%0APermitEmptyPasswords%20no%0APasswordAuthentication%20no%0A%0A%23%20Change%20to%20no%20to%20disable%20s%2Fkey%20passwords%0A%23ChallengeResponseAuthentication%20yes%0AChallengeResponseAuthentication%20no%0A%0A%23%20Kerberos%20options%0AKerberosAuthentication%20no%0A%23KerberosOrLocalPasswd%20yes%0A%23KerberosTicketCleanup%20yes%0A%23KerberosGetAFSToken%20no%0A%23KerberosUseKuserok%20yes%0A%0A%23%20GSSAPI%20options%0AGSSAPIAuthentication%20no%0AGSSAPICleanupCredentials%20no%0A%23GSSAPIStrictAcceptorCheck%20yes%0A%23GSSAPIKeyExchange%20no%0A%23GSSAPIEnablek5users%20no%0A%0A%23%20Set%20this%20to%20%27yes%27%20to%20enable%20PAM%20authentication%2C%20account%20processing%2C%0A%23%20and%20session%20processing.%20If%20this%20is%20enabled%2C%20PAM%20authentication%20will%0A%23%20be%20allowed%20through%20the%20ChallengeResponseAuthentication%20and%0A%23%20PasswordAuthentication.%20%20Depending%20on%20your%20PAM%20configuration%2C%0A%23%20PAM%20authentication%20via%20ChallengeResponseAuthentication%20may%20bypass%0A%23%20the%20setting%20of%20%22PermitRootLogin%20without-password%22.%0A%23%20If%20you%20just%20want%20the%20PAM%20account%20and%20session%20checks%20to%20run%20without%0A%23%20PAM%20authentication%2C%20then%20enable%20this%20but%20set%20PasswordAuthentication%0A%23%20and%20ChallengeResponseAuthentication%20to%20%27no%27.%0A%23%20WARNING:%20%27UsePAM%20no%27%20is%20not%20supported%20in%20Fedora%20and%20may%20cause%20several%0A%23%20problems.%0AUsePAM%20yes%0A%0A%23AllowAgentForwarding%20yes%0A%23AllowTcpForwarding%20yes%0A%23GatewayPorts%20no%0AX11Forwarding%20yes%0A%23X11DisplayOffset%2010%0A%23X11UseLocalhost%20yes%0A%23PermitTTY%20yes%0A%0A%23%20It%20is%20recommended%20to%20use%20pam_motd%20in%20%2Fetc%2Fpam.d%2Fsshd%20instead%20of%20PrintMotd%2C%0A%23%20as%20it%20is%20more%20configurable%20and%20versatile%20than%20the%20built-in%20version.%0APrintMotd%20no%0A%0APrintLastLog%20yes%0A%23TCPKeepAlive%20yes%0APermitUserEnvironment%20no%0ACompression%20no%0AClientAliveInterval%20300%0AClientAliveCountMax%200%0A%23UseDNS%20no%0A%23PidFile%20%2Fvar%2Frun%2Fsshd.pid%0A%23MaxStartups%2010:30:100%0A%23PermitTunnel%20no%0A%23ChrootDirectory%20none%0A%23VersionAddendum%20none%0A%0A%23%20no%20default%20banner%20path%0ABanner%20%2Fetc%2Fissue%0A%0A%23%20Accept%20locale-related%20environment%20variables%0AAcceptEnv%20LANG%20LC_CTYPE%20LC_NUMERIC%20LC_TIME%20LC_COLLATE%20LC_MONETARY%20LC_MESSAGES%0AAcceptEnv%20LC_PAPER%20LC_NAME%20LC_ADDRESS%20LC_TELEPHONE%20LC_MEASUREMENT%0AAcceptEnv%20LC_IDENTIFICATION%20LC_ALL%20LANGUAGE%0AAcceptEnv%20XMODIFIERS%0A%0A%23%20override%20default%20of%20no%20subsystems%0ASubsystem%09sftp%09%2Fusr%2Flibexec%2Fopenssh%2Fsftp-server%0A%0A%23%20Example%20of%20overriding%20settings%20on%20a%20per-user%20basis%0A%23Match%20User%20anoncvs%0A%23%09X11Forwarding%20no%0A%23%09AllowTcpForwarding%20no%0A%23%09PermitTTY%20no%0A%23%09ForceCommand%20cvs%20server%0A%0AUsePrivilegeSeparation%20sandbox
          mode: 384
          overwrite: true
          path: /etc/ssh/sshd_config
        - contents:
            source: data:,kernel.dmesg_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_dmesg_restrict.conf
        - contents:
            source: data:,kernel.kptr_restrict%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_kptr_restrict.conf
        - contents:
            source: data:,kernel.randomize_va_space%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_randomize_va_space.conf
        - contents:
            source: data:,kernel.unprivileged_bpf_disabled%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_unprivileged_bpf_disabled.conf
        - contents:
            source: data:,kernel.yama.ptrace_scope%3D1%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_kernel_yama_ptrace_scope.conf
        - contents:
            source: data:,net.core.bpf_jit_harden%3D2%0A
          mode: 420
          overwrite: true
          path: /etc/sysctl.d/75-sysctl_net_core_bpf_jit_harden.conf
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY3JlYXRlX21vZHVsZSAtUyBmaW5pdF9tb2R1bGUgLVMgaW5pdF9tb2R1bGUgLVMgZGVsZXRlX21vZHVsZSAtayBtb2R1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNyZWF0ZV9tb2R1bGUgLVMgZmluaXRfbW9kdWxlIC1TIGluaXRfbW9kdWxlIC1TIGRlbGV0ZV9tb2R1bGUgLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vaW5zbW9kIC1wIHggLWsgbW9kdWxlcwotdyAvdXNyL3NiaW4vcm1tb2QgLXAgeCAtayBtb2R1bGVzCi13IC91c3Ivc2Jpbi9tb2Rwcm9iZSAtcCB4IC1rIG1vZHVsZXMKCg==
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-kernel-module-loading.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9zdWRvZXJzIC1wIHdhIC1rIGFjdGlvbnMKLXcgL2V0Yy9zdWRvZXJzLmQvIC1wIHdhIC1rIGFjdGlvbnMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-sysadmin-actions.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMKLWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iNjQgLVMgYWRqdGltZXggLUYga2V5PWF1ZGl0X3RpbWVfcnVsZXMK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-adjtimex.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgY2xvY2tfc2V0dGltZSAtRiBhMD0weDAgLUYga2V5PXRpbWUtY2hhbmdlCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIGNsb2NrX3NldHRpbWUgLUYgYTA9MHgwIC1GIGtleT10aW1lLWNoYW5nZQo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-clock-settime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc2V0dGltZW9mZGF5IC1GIGtleT1hdWRpdF90aW1lX3J1bGVzCi1hIGFsd2F5cyxleGl0IC1GIGFyY2g9YjY0IC1TIHNldHRpbWVvZmRheSAtRiBrZXk9YXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-settimeofday.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LWEgYWx3YXlzLGV4aXQgLUYgYXJjaD1iMzIgLVMgc3RpbWUgLWsgYXVkaXRfdGltZV9ydWxlcwoK
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-stime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,LXcgL2V0Yy9sb2NhbHRpbWUgLXAgd2EgLWsgYXVkaXRfdGltZV9ydWxlcwo=
          mode: 420
          overwrite: true
          path: /etc/audit/rules.d/75-audit-rules-time-watch-localtime.rules
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBzc2hkIHNlcnZpY2UuCgojIFRoZSBzZXJ2ZXIga2V5cyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgdGhleSBhcmUgbWlzc2luZy4KIyBUbyBjaGFuZ2UgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiwgYWRqdXN0IHNzaGQuc2VydmljZSBvcHRpb25zIGZvcgojIGV4YW1wbGUgdXNpbmcgIHN5c3RlbWN0bCBlbmFibGUgc3NoZC1rZXlnZW5AZHNhLnNlcnZpY2UgIHRvIGFsbG93IGNyZWF0aW9uCiMgb2YgRFNBIGtleSBvciAgc3lzdGVtY3RsIG1hc2sgc3NoZC1rZXlnZW5AcnNhLnNlcnZpY2UgIHRvIGRpc2FibGUgUlNBIGtleQojIGNyZWF0aW9uLgoKIyBEbyBub3QgY2hhbmdlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3UgaGF2ZSBoYXJkd2FyZSByYW5kb20KIyBnZW5lcmF0b3IgYW5kIHlvdSBSRUFMTFkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcKClNTSF9VU0VfU1RST05HX1JORz0wCiMgU1NIX1VTRV9TVFJPTkdfUk5HPTEKCiMgU3lzdGVtLXdpZGUgY3J5cHRvIHBvbGljeToKIyBUbyBvcHQtb3V0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lCkNSWVBUT19QT0xJQ1k9Jy1vQ2lwaGVycz1hZXMyNTYtY3RyLGFlczE5Mi1jdHIsYWVzMTI4LWN0ciAtb01BQ3M9aG1hYy1zaGEyLTI1NixobWFjLXNoYTItNTEyLGhtYWMtc2hhMScKCg==
          mode: 384
          overwrite: true
          path: /etc/crypto-policies/back-ends/opensshserver.config
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          mode: 420
          path: /etc/chrony.conf
      systemd:
        units:
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="ENABLE_PROFILE_UNIX_SOCKET=true"
            name: 10-mco-profile-unix-socket.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          name: crio.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: docker.socket
        - contents: |
            [Unit]
            Description=Dynamically sets the system reserved for the kubelet
            Wants=network-online.target
            After=network-online.target ignition-firstboot-complete.service
            Before=kubelet.service crio.service
            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            RemainAfterExit=yes
            EnvironmentFile=/etc/node-sizing-enabled.env
            ExecStart=/bin/bash /usr/local/sbin/dynamic-system-reserved-calc.sh ${NODE_SIZING_ENABLED} ${SYSTEM_RESERVED_MEMORY} ${SYSTEM_RESERVED_CPU}
            [Install]
            RequiredBy=kubelet.service
          enabled: true
          name: kubelet-auto-node-size.service
        - contents: |
            [Unit]
            Description=Kubernetes Kubelet
            Wants=rpc-statd.service network-online.target
            Requires=crio.service kubelet-auto-node-size.service
            After=network-online.target crio.service kubelet-auto-node-size.service
            After=ostree-finalize-staged.service

            [Service]
            Type=notify
            ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests
            ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state
            EnvironmentFile=/etc/os-release
            EnvironmentFile=-/etc/kubernetes/kubelet-workaround
            EnvironmentFile=-/etc/kubernetes/kubelet-env
            EnvironmentFile=/etc/node-sizing.env

            ExecStart=/usr/bin/hyperkube \
                kubelet \
                  --config=/etc/kubernetes/kubelet.conf \
                  --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig \
                  --kubeconfig=/var/lib/kubelet/kubeconfig \
                  --container-runtime=remote \
                  --container-runtime-endpoint=/var/run/crio/crio.sock \
                  --runtime-cgroups=/system.slice/crio.service \
                  --node-labels=node-role.kubernetes.io/worker,node.openshift.io/os_id=${ID} \
                  --node-ip=${KUBELET_NODE_IP} \
                  --address=${KUBELET_NODE_IP} \
                  --minimum-container-ttl-duration=6m0s \
                  --volume-plugin-dir=/etc/kubernetes/kubelet-plugins/volume/exec \
                  --cloud-provider=vsphere \
                  --cloud-config=/etc/kubernetes/cloud.conf \
                  --pod-infra-container-image=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d45d02c3a6f9bcaee28ba7232a9d054ae8ec9bfccd1a504a00c597997e75e126 \
                  --system-reserved=cpu=${SYSTEM_RESERVED_CPU},memory=${SYSTEM_RESERVED_MEMORY} \
                  --v=${KUBELET_LOG_LEVEL}

            Restart=always
            RestartSec=10

            [Install]
            WantedBy=multi-user.target
          dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          - contents: |
              [Service]
              Environment="GODEBUG=x509ignoreCN=0,madvdontneed=1"
            name: 10-mco-default-madv.conf
          enabled: true
          name: kubelet.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Firstboot
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # Removal of this file signals firstboot completion
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            After=machine-config-daemon-pull.service
            Before=crio.service kubelet.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # Disable existing repos (if any) so that OS extensions would use embedded RPMs only
            ExecStartPre=-/usr/bin/sh -c "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo"
            ExecStart=/run/bin/machine-config-daemon firstboot-complete-machineconfig
            [Install]
            WantedBy=multi-user.target
            RequiredBy=crio.service kubelet.service
          enabled: true
          name: machine-config-daemon-firstboot.service
        - contents: |
            [Unit]
            Description=Machine Config Daemon Pull
            # Make sure it runs only on OSTree booted system
            ConditionPathExists=/run/ostree-booted
            # This "stamp file" is unlinked when we complete
            # machine-config-daemon-firstboot.service
            ConditionPathExists=/etc/ignition-machine-config-encapsulated.json
            # Run after crio-wipe so the pulled MCD image is protected against a corrupted storage from a forced shutdown
            Wants=network-online.target crio-wipe.service
            After=network-online.target crio-wipe.service

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            # See https://github.com/coreos/fedora-coreos-tracker/issues/354
            ExecStart=/bin/sh -c '/bin/mkdir -p /run/bin && chcon --reference=/usr/bin /run/bin'
            ExecStart=/bin/sh -c "while ! /usr/bin/podman pull --authfile=/var/lib/kubelet/config.json --quiet 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9062bc656e624ca1bdddd00bd282badcba26ad5033b56a1b296d6e5ea4511fcd'; do sleep 1; done"
            ExecStart=/bin/sh -c "/usr/bin/podman run --rm --quiet --net=host --entrypoint=cat 'quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9062bc656e624ca1bdddd00bd282badcba26ad5033b56a1b296d6e5ea4511fcd' /usr/bin/machine-config-daemon > /run/bin/machine-config-daemon.tmp"
            ExecStart=/bin/sh -c '/usr/bin/chmod a+x /run/bin/machine-config-daemon.tmp && mv /run/bin/machine-config-daemon.tmp /run/bin/machine-config-daemon'
            [Install]
            RequiredBy=machine-config-daemon-firstboot.service
          enabled: true
          name: machine-config-daemon-pull.service
        - contents: |
            [Unit]
            Before=NetworkManager.service
            After=systemd-tmpfiles-setup.service
            [Mount]
            Where=/etc/NetworkManager/systemConnectionsMerged
            What=overlay
            Type=overlay
            Options=lowerdir=/etc/NetworkManager/system-connections,upperdir=/run/nm-system-connections,workdir=/run/nm-system-connections-work
            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: etc-NetworkManager-systemConnectionsMerged.mount
        - contents: |
            [Unit]
            Description=Ensure the node hostname is valid for the cluster
            Before=network-online.target

            [Service]
            Type=oneshot
            RemainAfterExit=yes
            User=root

            # SystemD prevents direct execution of the script in /usr/local/sbin,
            # so it is sourced. See the script for functionality.
            ExecStart=/bin/bash -c "source /usr/local/sbin/set-valid-hostname.sh; wait_localhost; set_valid_hostname `hostname`"

            # Wait up to 5min for the node to get a real hostname.
            TimeoutSec=300

            [Install]
            WantedBy=multi-user.target
            # Ensure that network-online.target will not complete until the node has a real hostname.
            RequiredBy=network-online.target
          enabled: true
          name: node-valid-hostname.service
        - contents: |
            [Unit]
            Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
            # This only applies to VIP managing environments where the kubelet and crio IP
            # address picking logic is flawed and may end up selecting an address from a
            # different subnet or a deprecated address
            Wants=network-online.target crio-wipe.service
            After=network-online.target ignition-firstboot-complete.service crio-wipe.service
            Before=kubelet.service crio.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            # Would prefer to do Restart=on-failure instead of this bash retry loop, but
            # the version of systemd we have right now doesn't support it. It should be
            # available in systemd v244 and higher.
            ExecStart=/bin/bash -c " \
              until \
              /usr/bin/podman run --rm \
              --authfile /var/lib/kubelet/config.json \
              --net=host \
              --volume /etc/systemd/system:/etc/systemd/system:z \
              quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:420e898f1726d2588ef0aa4adec4d5f9bcdba8bfaf108be993b4ceb9a890c618 \
              node-ip \
              set --retry-on-failure \
              <no value>; \
              do \
              sleep 5; \
              done"
            ExecStart=/bin/systemctl daemon-reload

            [Install]
            WantedBy=multi-user.target
          enabled: false
          name: nodeip-configuration.service
        - enabled: true
          name: openvswitch.service
        - contents: |
            [Unit]
            Description=Configures OVS with proper host networking configuration
            # Removal of this file signals firstboot completion
            ConditionPathExists=!/etc/ignition-machine-config-encapsulated.json
            # This service is used to move a physical NIC into OVS and reconfigure OVS to use the host IP
            Requires=openvswitch.service
            Wants=NetworkManager-wait-online.service
            After=NetworkManager-wait-online.service openvswitch.service network.service
            Before=network-online.target kubelet.service crio.service node-valid-hostname.service

            [Service]
            # Need oneshot to delay kubelet
            Type=oneshot
            ExecStart=/usr/local/bin/configure-ovs.sh OpenShiftSDN
            StandardOutput=journal+console
            StandardError=journal+console

            [Install]
            WantedBy=network-online.target
          enabled: true
          name: ovs-configuration.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch'
              ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch'
              ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:info
              ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:info
            name: 10-ovs-vswitchd-restart.conf
          name: ovs-vswitchd.service
        - dropins:
          - contents: |
              [Service]
              Restart=always
            name: 10-ovsdb-restart.conf
          enabled: true
          name: ovsdb-server.service
        - dropins:
          - contents: ""
            name: 10-mco-default-env.conf
          name: pivot.service
        - contents: |
            [Unit]
            Description=vSphere hostname
            Requires=vmtoolsd.service
            After=vmtoolsd.service

            ConditionPathExists=!/etc/hostname
            ConditionVirtualization=vmware

            Before=kubelet.service
            Before=node-valid-hostname.service
            Before=NetworkManager.service

            [Service]
            ExecStart=/usr/local/bin/vsphere-hostname.sh
            Restart=on-failure
            RestartSec=15

            [Install]
            WantedBy=multi-user.target
          enabled: true
          name: vsphere-hostname.service
        - dropins:
          - contents: |
              [Unit]
              ConditionPathExists=/enoent
            name: mco-disabled.conf
          name: zincati.service
    extensions: []
    fips: false
    kernelArguments: []
    kernelType: default
    osImageURL: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:8d53259469cf459f90bd80f7204d970c6a5e468338190b3b816059ecc8481542
- apiVersion: machineconfiguration.openshift.io/v1
  kind: MachineConfig
  metadata:
    creationTimestamp: "2021-08-18T16:49:29Z"
    generation: 1
    labels:
      machineconfiguration.openshift.io/role: worker
    name: worker-ntp-configuration
    resourceVersion: "60322"
    uid: b0cd404d-47eb-4f8f-a63e-5a10b8793d1c
  spec:
    config:
      ignition:
        version: 3.1.0
      storage:
        files:
        - contents:
            source: data:text/plain;charset=utf-8;base64,IyBibHVlCnNlcnZlciBhdGwtcHJkLWFkcy0wMmIuaXNzLmxvY2FsCnNlcnZlciBhdGwtcHJkLWFkcy0wMWMuc2VjLmlibS5jb20KIyB5ZWxsb3cKc2VydmVyIGF0bC1wcmQtYWRzLTAxZC5zZWMuaWJtLmNvbQpzZXJ2ZXIgYXRsLXByZC1hZHMtMDJkLnNlYy5pYm0uY29tCnNlcnZlciBhdGxkb21zcnZwMDYuaXNzLm5ldApjb21tYW5ka2V5IDEKa2V5ZmlsZSAvZXRjL2Nocm9ueS5rZXlzCmRyaWZ0ZmlsZSAvdmFyL2xpYi9jaHJvbnkvZHJpZnQKbWFrZXN0ZXAgMSAzCnJ0Y3N5bmMK
          filesystem: root
          mode: 420
          path: /etc/chrony.conf
kind: List
metadata:
  resourceVersion: ""
